【发布时间】:2013-01-02 01:25:39
【问题描述】:
我需要比较两个不同大小的Arraylist。
我可以用两个循环来做到这一点 - 但我需要使用迭代器。
第二个循环只迭代一次而不是n次。
while (it.hasNext()) {
String ID = (String) Order.get(i).ID();
j = 0;
while (o.hasNext()) {
String Order = (String) Order.get(j).ID();
if (myOrder.equals(Order)) {
//do sth
}
j++;
o.next();
}
i++;
it.next();
}
【问题讨论】:
-
您似乎误解了如何使用迭代器。如果使用迭代器,则无需调用
String ID = list.get(i).ID();,只需调用:String ID = it.next().ID();。 -
更多关于我需要比较的细节会有所帮助。您要检查它们是否包含相同的对象,或者它们是否在相同的插槽中包含相同的对象。
-
如果您正在使用现代编程 IDE(如 eclipse),请开始使用自动格式化。阅读此代码后,由于眼癌,我将不得不与我的医生再次预约...:P
-
另外,您应该尝试关注Java Naming Conventions。因此,方法名应该以小写开头(
id(),而不是ID())和变量名(String order;,而不是String Order;)。这将优化可读性并防止代码出现令人讨厌的问题。
标签: java arraylist iterator while-loop