ArrayList对象之间赋值

42 阅读1分钟

ArrayList对象之间赋值

错误赋值方法

List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1 = list2;

该种赋值只是把list2的地址值赋给了list1,这样导致修改二者其中一个对象的值,都会导致另一个对象值发生变化(根据java垃圾回收机制,由于二者指向了同一个地址值,list1的原先对象会被垃圾回收机制回收掉)。

正确赋值方法(集合自带的构造方法、克隆)

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