在我的項目中,用戶輸入隨機字母。然後我遍歷my_list
,看看這些隨機字母是否出現在my_list
。如果是這樣,我從my_list
中刪除它們。迭代器不循環
實施例:
List<String> my_list
包含:[a, b, c, d]
List<String> rand
包含:[r, a]
目標:a
將從my_list
問題被移除:將Iterator
循環通過my_list
用於字母搜索r
。字母r
不在my_list
。但是,而不是繼續到下一個字母a
,該iterator
退出循環和a
仍停留在my_list
有人能告訴我爲什麼我的循環保持的第一個字母后分手?
這裏是我的代碼:
public void removeLetters(List<String> my_list, List<String> rand) {
Iterator<String> i = my_list.iterator();
for(String s : rand) {
while(i.hasNext()) {
Object o = i.next();
if(o.toString().equals(s)) {
i.remove();
i = my_list.iterator();
break;
}
}
}
}
我希望我解釋了我的問題不夠好。如果我需要更詳細地解釋,請告訴我。
謝謝
爲什麼不使用'my_list.removeAll(rand);'? – 323go 2014-12-03 16:28:04