ArrayList remove java.util.ConcurrentModificationException

ArrayList remove java.util.ConcurrentModificationException

package com.example.core.mydemo.java3;

import com.example.core.mydemo.json2.GsonUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * 过滤集合中的数据
 * output:
 * list=["1","2","3","4","5","6"]
 * i=1
 * i=2
 * i=3
 * i=4
 * i=5
 * i=6
 * list end =["2","4","6"]
 */
public class ListTest {
    public static void main(String[] args) {
        List<String> list2 = new ArrayList<String>();
        list2.add("1");
        list2.add("3");
        list2.add("5");

        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        System.out.println("list=" + GsonUtils.toJson(list));

        List<String> removeList = new ArrayList<String>();

        for (String i : list) {
            System.out.println("i=" + i);
            if(list2.contains(i)){
                //ArrayList remove java.util.ConcurrentModificationException
                //在循环遍历的时候,不能删除集合中的数据。
//                list.remove(i);
//                System.out.println("del i=" + i);
                //
                removeList.add(i);
            }
        }

        //在循环外部删除,统一删除
        list.removeAll(removeList);
        System.out.println("list end =" + GsonUtils.toJson(list));

    }
}

 

posted on 2025-03-04 18:40  oktokeep  阅读(10)  评论(0)    收藏  举报