阅读 157

ArrayList两个对象之间的赋值

ArrayList两个对象之间的赋值

复制代码

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();

来源https://www.cnblogs.com/ycy0401/p/14825965.html

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐