码迷,mamicode.com
首页 > 其他好文 > 详细

ArrayList两个对象之间的赋值

时间:2021-06-02 16:00:48      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:赋值   new   构造   div   i++   string   int   out   for   

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两个对象之间的赋值

标签:赋值   new   构造   div   i++   string   int   out   for   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!