我有一个MainList
有61个元素和subList
的9个元素。 在subList
中的9个元素中,其中8个在MainList
中。Arraylist循环故障
我的目标是简单地删除这两个列表中存在的对象。
for(int i = 0; i < subList.size();i++){
for(int j = 0; j < mainList.size();j++){
if(subList.get(i).equals(mainList.get(j))){
mainList.remove(j);
subList.remove(i);
break;
}
}
}
我现在面临的问题是,在for循环之后,subList
仍然5元,这意味着仅for循环能够找到4个对象相似。
之后,我又写了for循环调试,如下的情况:
for(int i = 0; i < subList.size();i++){
for(int j = 0; j < mainList.size();j++){
if(subList.get(i).equals(mainList.get(j))){
System.out.println("something");
}
}
}
而且我能看到的“东西”的4倍。我想知道为什么第一个forloop不能找到所有类似的对象?
不要循环使用索引并更改循环内的集合,这很可能会导致错误。改用迭代器。 – Thomas