0

我想寻求帮助。

  1. 我有对象。
  2. 对象有“房间”和“人”的集合。
  3. 我需要从选定的“建筑物”中将每个“人”添加到额外列表中

代码更清晰:

    public void findPeopleInRoom(String selectedWord) {

    List <String> listPeople= new ArrayList<>();

    //school.subordinateBuildings() return List of buildings
    //b.people() return List of people

        for(IBuilding b: school.subordinateBuildings()) { 
            if(b.getName().equals(selectedWord)) {
                for(Person p1: b.people() ) {
                    listPeople.add(p1.getName());
                }
            }
            else {
                for(IBuilding b2: b.subordinateBuildings()) {
                    if(b2.getName().equals(selectedWord)) {
                        for(Person p2: b2.people() ) {
                            listPeople.add(p2.getName());
                        }
                    }
                }
            }
            System.out.println(listPeople);
            return;
        }
    }

示例(结构):

  • 学校(“名称”)(每个对象都有人员列表和建筑物列表):
    • “一种”
    • “乙”
      • “B1”
      • “B2” -> 人员列表
    • “C”

但这对我来说不太好用,有点随机。大多数时候不会打印任何东西,有时是正确的。

谢谢大家。

嗯...

4

1 回答 1

1

您的return;语句在 for 循环中。因此它将在第一次迭代后执行,并退出该方法。要在所有建筑物上运行循环,请摆脱该return;语句,无论如何您都不需要在void方法中使用它。

于 2012-11-03T14:31:03.573 回答