对java中的List进行深拷贝,并进行删除测试

List list = new ArrayList<>();  // 需要拷贝的原始List

list.add("aaa");

list.add("bbb");

list.add("ccc");

List listNew = new ArrayList<>();  // 新List

// 将原始List的值赋值给新List

CollectionUtils.mergeArrayIntoCollection(new Object[list.size()], listNew);

Collections.copy(listNew, list);

// 现在将心List中的值删除一个,会发现不影响原始List,例如:

List list_remove= new ArrayList<>();  // 中间List

for (String s : listNew){

    if("aaa".equals(s)){

        list_remove.add(s);

    }

}

listNew.removeAll(list_remove);

System.out.println(listNew);    // [bbb, ccc]

System.out.println(list);    // [aaa, bbb, ccc]    原始list没变

你可能感兴趣的:(java,list,深拷贝,删除,测试)