在外部集合中查找,从内部集合添加

时间:2012-11-03 14:10:44

标签: java collections for-loop

我想请求帮助。

  1. 我有对象。
  2. 物品有“房间”和“人物”的集合。
  3. 我需要将所有“人”添加到所选“建筑”的额外列表中
  4. 代码更清晰:

        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;
            }
        }
    

    实施例(结构):

    • 学校(“名称”)(每个对象都有人员名单和建筑物清单):
      • “A”
      • “B”
        • “B1”
        • “B2” - &gt;人员名单
      • “C”

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

    感谢大家。

    MmM ......

1 个答案:

答案 0 :(得分:1)

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