如何复制集合类的实例?? 附代码。 ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); System.out.println(list); ArrayList list2 = list; list2.clear(); System.out.println(list); 希望 list2.clear(); 执行后,System.out.println(list); 仍打印 1 2 3。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有啊,我就是想创建一个 list 的副本,对这个副本修改而不影响原来的实例。 list2.clear(); 执行后,System.out.println(list); 仍打印 1 2 3。这不可能啊 clear意思是清除数据在查看API后java.util 类 ArrayList<E>clear() 移除此列表中的所有元素。除非你覆盖这个方法或者在这个方法后面重新将 list的值赋给list2 才能实现仍打印 1 2 3 是啊。所以 我是想创建一个 list 的副本,对这个副本list2修改而不影响原来的实例list。 我是想问 怎么创建一个 list 的副本list2,对这个副本list2修改而不影响原来的实例list。怎么复制? 直接 ArrayList list2 = list; 仍然是引用到list上。 将你原来代码中的 ArrayList list2 = list;换成: ArrayList list2 = new ArrayList(list);OK你那些做只是将引用list2指向list所指向的对象,当然list2被clear掉,实际是clear掉了两者所指向对象的元素了…… 那你应该在new一个ArrayList 并将list的值赋给list2ArrayList list2 = list;这一句并没有创建一个新的实例而是将list2指向了list指向的那个实例 也就是说list2和list公用一个实例你清除其中一个(也就是清除了他们公用的那个实例)另一个肯定也受到同样的影响 ArrayList list2 = (ArrayList)list.clone(); 那Set Map Stack 等等有这种传参数的构造方法吗? 我查查去 clone() 是复制对象用的?我过去没用过。。 java 中空对象是什么概念? 一个照搬书上的List容器的小例子,编译有警告,运行没问题,不懂为什么 计算1-1/3+1/5+.....的前1000项的和 最多约数问题 java 中Graphics 颜色设置问题 输入输出流的问题。。。谢谢。。 java程序大学题 谢谢啦 如何解决这个无任何继承类中读取图象的width和height?50分,解决马上给分 哪里有jbuilder5的中文帮助下载? Thread join方法的一个疑问 字符串中提取时间的问题 一个关于继承的问题
这不可能啊 clear意思是清除数据
在查看API后
java.util
类 ArrayList<E>
clear()
移除此列表中的所有元素。
除非你覆盖这个方法或者在这个方法后面重新将
list的值赋给list2 才能实现仍打印 1 2 3
怎么复制? 直接 ArrayList list2 = list; 仍然是引用到list上。
将你原来代码中的 ArrayList list2 = list;
换成:
ArrayList list2 = new ArrayList(list);OK
你那些做只是将引用list2指向list所指向的对象,当然list2被clear掉,实际是clear掉了两者所指向对象的元素了……
而是将list2指向了list指向的那个实例
也就是说list2和list公用一个实例
你清除其中一个(也就是清除了他们公用的那个实例)
另一个肯定也受到同样的影响