-9

我有一间带房间的房子。我递归地调用这所房子来获取房间,我希望所有房间只打印一次房子名称。

例如

HouseName:City Hall - 后跟每个房间的 Room 属性。

   House house;
   Set<House> rooms = house.getRooms();

   //Bear in mind that all rooms have the same house name (houseName)
   for(House room:rooms){
      System.out.println(room.getHouseName()); // will be the same for all rooms
      System.out.println("Room: "); 
      System.out.println(room.getColor());
      System.out.println(room.getState()); 
      System.out.println();    
}

我想以houseName如下所示的形式为所有房间输出一次。

输出:

房屋名称:市政厅房间数量:3


房间:红旧

房间:蓝色损坏

房间:白色翻新

4

1 回答 1

0

您可以尝试以下

这是我的房间课

public class Rooms {
String color;
String state;

public String getColor() {
    return color;
}

public void setColor(String color) {
    this.color = color;
}

public String getState() {
    return state;
}

public void setState(String state) {
    this.state = state;
}
}

现在这是我的家庭课程

public class House {
String houseName;
int numberOfRooms;
Set<Rooms> rooms=new HashSet<>();

public String getHouseName() {
    return houseName;
}

public void setHouseName(String houseName) {
    this.houseName = houseName;
}

public int getNumberOfRooms() {
    return numberOfRooms;
}

public void setNumberOfRooms(int numberOfRooms) {
    this.numberOfRooms = numberOfRooms;
}

public void setRooms(Set<Rooms> rooms) {
    this.rooms = rooms;
}

public Set<Rooms> getRooms() {
    return rooms;
}

public Set<House> getHouse(){
    Set<House> houses=new HashSet<>();
    Set<Rooms> rooms=new HashSet<>();
    House h1=new House();
    Rooms r1=new Rooms();
    Rooms r2=new Rooms();

    r1.setColor("red");
    r1.setState("new");
    r2.setColor("blue");
    r2.setState("old");
    rooms.add(r1);
    rooms.add(r2);
    h1.setHouseName("Haven");
    h1.setNumberOfRooms(2);
    h1.setRooms(rooms);

    houses.add(h1);

    return houses;
}
}

最后这是我的主要课程

public class MyClass {
public static void main(String[] args)  {
   House house=new House();
   Set<House> houses=house.getHouse();
    for(House h:houses){
        System.out.println("House Name: "+h.getHouseName());
        System.out.println("Number of rooms: "+h.getNumberOfRooms());
        for(Rooms r:h.getRooms()){
            System.out.println("Room color: "+r.getColor());
            System.out.println("Room state: "+r.getState());
        }
    }

  }
  }
于 2013-07-09T05:58:08.203 回答