我有一個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