有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带迭代器的java嵌套forloops?

我有以下代码,它使用嵌套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) 个答案

  1. # 1 楼答案

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

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

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