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

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

list.add("aaa");

list.add("bbb");

list.add("ccc");

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

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

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

Collections.copy(listNew, list);

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

List<String> 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没变

相关推荐
大飞记Python1 分钟前
从“驱动地狱”到一行代码:WebDriverManager使用手记(附模板)
python·测试
LucaJu10 分钟前
一次 OOM 线上排查实录
java·jvm·oom·内存溢出
SimonKing20 分钟前
Firefox 太卡?换了这浏览器,内存占用直接降了 70%
java·后端·程序员
咖啡八杯22 分钟前
GoF设计模式——建造者模式
java·后端
l软件定制开发工作室24 分钟前
Spring开发系列教程(41)——集成Open API
java·后端·spring
折哥的程序人生 · 物流技术专研30 分钟前
《Java 100 天进阶之路》第14篇:Java final关键字详解
java·开发语言·后端·面试
IT当时语_青山师__JAVA技术栈30 分钟前
数组与链表深度解析:从内存布局到工业级实践
java·算法·面试
java1234_小锋32 分钟前
Spring AI 2.0 开发Java Agent智能体 - 工具调用(Function Calling / Tools)
java·人工智能·spring
Cosmoshhhyyy33 分钟前
《Effective Java》解读第 52 条:慎用重载
java·开发语言·windows
大大杰哥33 分钟前
温故知新:Java 线程创建方式的演进与总结
java·开发语言·jvm