Java-常見錯誤集錦
阿新 • • 發佈:2019-02-17
1.遍歷時,從列表裡刪除元素
1.1.測試程式碼:
/**
* 遍歷時,從列表裡刪除元素
*/
private static void testListRemove() {
List<String> list = new ArrayList(Arrays.asList("a", "b", "c", "d"));
//錯誤姿勢:使用for迴圈
try {
for (String s : list) {
if (s.equals("a"))
list.remove(s);
}
} catch (Exception e) {
e.printStackTrace();
}
//正確姿勢:使用迭代器
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String s = iter.next();
if (s.equals("a")) {
iter.remove();
}
}
System.out.println(JSON.toJSONString(list));
}
1.2.輸出結果:
1.3.原因分析:
當一個元素被刪除時,列表的指標改變了。所以想要在迴圈內利用指標刪除多個元素是無法正常進行的。