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