1. 程式人生 > >Java-常見錯誤集錦

Java-常見錯誤集錦

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.原因分析:

當一個元素被刪除時,列表的指標改變了。所以想要在迴圈內利用指標刪除多個元素是無法正常進行的。