嵌套for循环与迭代器?

时间:2011-11-20 01:25:52

标签: java

我有以下代码,它使用嵌套的for-each循环来遍历Job类和Category类中的两个ArrayList属性(以及对属性执行一些逻辑):

for(Object dobj : hospice.getCategorys()) {
    Category cat = (Category) dobj;
    for(Object pobj : cat.getJobs()) {
        Job job = (Job) pobj;

        if(job.getID() == id) {
            System.out.println(
                String.format("The Job %d belongs to the (%s) %s Category.", 
                              id, 
                              cat.getCode(), 
                              cat.getName()));

            catFound = true;
        }

    }
}

有没有使用这种方法来利用Java迭代器来创建更优雅,面向未来的解决方案?

感谢。

1 个答案:

答案 0 :(得分:3)

使用迭代器的嵌套循环是可以的。但更优雅的解决方案不使用显式转换。优选的解决方案获取类型迭代器:

for (Category cat : hospice.getCategorys()){
  for (Job job : cat.getJobs()){
    // logic here
  }
}

请注意,在这种情况下,您的方法应该返回类型对象CategoryJob,而不是Object