針對原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());