对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没变

相关推荐
SimonKing10 小时前
frontend-dev vs ui-ux-pro-max:谁才是Vibe Coding前端开发的“最强辅助”?
java·后端·程序员
小谢小哥10 小时前
57-数据同步方案详解
java·后端·架构
小谢小哥10 小时前
56-最终一致性方案详解
java·后端·架构
人道领域10 小时前
【Redis实战篇 | Day04】Lua原子性优化Redis分布式锁:解决线程安全问题
java·开发语言·redis·性能优化
恋奴娇10 小时前
ubuntu 25 Nautilus 文件管理器不能以ROOT运行突破
java·数据库·ubuntu
写了20年代码的老程序员10 小时前
微信支付回调里,为什么一行 data.order.amount 胜过五层判空
java
无所事事O_o10 小时前
内存化系统设计
java·架构
C语言小火车10 小时前
2026年C++后端开发面试题
java·开发语言·面试
希望永不加班10 小时前
SpringBoot 整合 RabbitMQ 入门
java·spring boot·后端·rabbitmq·java-rabbitmq
小龙报10 小时前
【数据结构与算法】一文拿捏链式二叉树:遍历 + 统计 + 层序 + 完全树
java·c语言·开发语言·c++·人工智能·语言模型·visual studio