併發修改異常java.util.ConcurrentModificationException

java.util.ConcurrentModificationException併發修改異常

併發修改異常

在集合操作中如果使用迭代器去遍歷集合中的元素經常會遇到併發修改異常java.util.ConcurrentModificationException

引發這個問題的主要原因是,迭代器在遍歷查詢集合元素時,元素又動態添加了

錯誤代碼

需求是如果集合中含有c的元素那麼就添加e的元素

List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals("c")) {
                list.add("e");
            }
        }
        System.out.println(list);

一運行就會報java.util.ConcurrentModificationException的異常

修改後代碼

思路,如果有添加的元素那麼就使用迭代器的添加方法,不能使用集合直接添加

List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        ListIterator<String> iterator = list.listIterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals("c")) {
                iterator.add("e");
            }
        }
        System.out.println(list);

日常筆記,繼續保持!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章