针对原list.clear()时,但需要保存未clear之前的数据,如以下code
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
//1.直接把list所指向内存对象copy给自己的内存空间(有效)
//List<Integer> copyList = new ArrayList<Integer>(list);
List<Integer> copyList = new ArrayList<Integer>();
//2.只是引用指向了list 但是list所指向的内存还是自己管理(无效)
//copyList = list;
//3.同1(有效)
//copyList.addAll(list);
//4.(有效)
/*
for (Integer integer : list) {
copyList.add(integer);
}*/
copyList.add(3);
copyList.add(5);
copyList.add(1);
//5.此种方式copyList.size()>=list.size()有效,不然java.lang.IndexOutOfBoundsException
Collections.copy(copyList, list);
list.clear();
System.out.println(copyList.size());