我有以下代码,它使用嵌套的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迭代器来创建更优雅,面向未来的解决方案?
感谢。
答案 0 :(得分:3)
使用迭代器的嵌套循环是可以的。但更优雅的解决方案不使用显式转换。优选的解决方案获取类型迭代器:
for (Category cat : hospice.getCategorys()){
for (Job job : cat.getJobs()){
// logic here
}
}
请注意,在这种情况下,您的方法应该返回类型对象Category
和Job
,而不是Object
。