list间元素拷贝值相同问题
来源:互联网 发布:信用卡账单生成软件 编辑:程序博客网 时间:2024/06/03 17:49
做项目时遇到一关于list间元素拷贝问题
问题描述:将list1中的第一个元素原封不动的拷贝到list2中,然后再将list1中第一个元素改变其部分属性拷贝到list2中,结果list2中接收到的两个元素值一样。
很诧异,研究了一下,大概原因是:list2中拷贝过去的是list1元素的引用,并非其值。(举个例子来说明……)
//构造一个list,只包含一个Person型的元素
Person p1 = new Person("n1",11);
List<Person> list1 = new LinkedList<Person>();
list1.add(p1);
List<Person> list2 = new LinkedList<Person>();
//将list1中的元素去除放到list2中
Person person1 = list1.get(0);
list2.add(person1);
//将list1中元素属性更改,取出并放入list2中,此时list2中有两个元素
list1.get(0).setName("Y1");
Person person2 = list1.get(0);
list2.add(person2);
//判断list2中两个元素的引用是否相同---结果为true
System.out.println(person1 == person2);
for(int i = 0; i < list2.size(); i++){
System.out.println(list2.get(i).getName());//期盼结果为n1 Y1;实际结果为:Y1 Y1
}
//将一个list中的元素拷贝到另一个list中,不是元素值拷贝,而是引用拷贝。(将list1中p1拷贝到list2中,然后再将list1中p1改变一下name值,再拷贝到list2中,list2中得到的虽然是两个元素,但此两个元素的引用相同,则值必也相同)
- list间元素拷贝值相同问题
- 检测list内有几组相同元素
- List集合去除相同元素
- Java判断List中相同值元素的个数
- python list拷贝问题
- java list 比较相同的元素
- 求list中,相同元素的个数
- 查询2个list相同和不相同元素
- list删除元素问题
- 解决List的add方法错使前面的元素被覆盖成相同值
- 放鸡蛋问题:相同元素分配到相同的空间
- java List合并相同的项问题
- 两个List 去除重复和保留相同的元素
- 过滤 List 容器中重复(相同)的数据元素
- python 中两个list是否有相同元素的办法
- python 中两个list是否有相同元素的办法?
- 两个list集合取相同的元素》》》目前最佳性能
- 比较两个List是否相等(相同元素)
- 黑马程序员------Java基础学习------异常处理
- Core Data 使用
- Java导出Excel文件
- BZOJ1901【整体二分】
- Fragment和ViewPager的结合——仿制微信界面6.0<二>
- list间元素拷贝值相同问题
- cocos2dx 实现gallery (二)
- Register-SPWorkflowService 远程服务器返回错误: (404) 未找到
- 【cocos2d-x 4】关于CocosStudio编辑动画的一点备忘
- android开发——intent/intent-filter
- Python基础08 面向对象的基本概念
- Java Post 数据请求和接收
- 1.判断ios7以及iphone5
- 双系统格式化centos的分区,重启后杯具了。。。