ArrayList两个对象之间的赋值

时间:2022-09-30 13:59:26
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1 = list2;

这种方法只是将list2的地址赋值给了list1。也就是list1的地址指向了list2的地址,也就是两个list相当于一个list,因为他们指向了同一个地址值。而原来的list1的原先对象会被垃圾回收机制回收掉。

正确的赋值方法是:

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