private void removeLettersFromMakeWords(List<String> a, List<String> b){
Iterator<String> i = a.iterator();
for(String s:b)
while (i.hasNext()) {
Object o = i.next();
if(o.toString().equals(s)){
i.remove();
break;
}
}
}
我使用迭代器遍歷列表並從列表中刪除元素,如果匹配。 例如:如果a
= [a, y, f, z, b]
和b
= [a, f]
- >的輸出將是a
= [y, z, b
]Android:使用迭代器從列表中刪除元素
問題是,如果a
= [a, y, f, z, b]
和b
= [f, a]
- >的輸出將是a
= [a, y, z, b
] 並且迭代器在開始時不會刪除[a
]值。有沒有辦法重置迭代器,以便每次我迭代器從一開始就開始?break
?還是有更好的方法來解決這個問題?
問題是你永遠不會重置迭代器。你可以簡單地爲b的每個字符串創建一個新的迭代器。但是,我建議只使用'a.removeAll(b)'而不是所有的代碼。 – njzk2 2014-11-04 17:02:45
感謝,更容易 – user2456977 2014-11-04 17:27:43