首页 > 其他 > 详细

ArrayList两个对象之间的赋值

时间:2021-05-30 00:27:34      阅读:12      评论:0      收藏:0      [点我收藏+]
ArrayList list  = new ArrayList();
// 第一次扩容
for (int i = 0; i < 10; i++) {
      list.add(i);
}
ArrayList list1  = list;
 for (int i = 0; i < 5; i++) {
      list1.add(i);
}
System.out.println(list.toString());
System.out.println(list1.toString());
System.out.println(list.equals(list1));

输出结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
true

发现list1和list输出的内容是一样的,这种方法只是将list的地址赋值给list1,他们都是操作同一块地址,相当于list。

而希望的赋值时把值传给list1,这个ArrayList和之前list完全是两个不同(分别指向不同的地址),正确的做法:

List <String> list1 = new ArrayList<String>();
//方法一:利用集合自带的构造方法
List<String> list2= new ArrayList<String>(list1);
//方法二:利用克隆的方法进行赋值
List<String> list2 =(ArrayList<String>) list1.clone();

ArrayList两个对象之间的赋值

原文:https://www.cnblogs.com/ycy0401/p/14825965.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!