1. 程式人生 > >清空Arraylist遇到的坑:慎用ArrayList.clear()

清空Arraylist遇到的坑:慎用ArrayList.clear()

無腦上程式碼

ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
ArrayList<String> list1 = list;
for(String i:list1) {
	System.out.print(i+" ");
}
list=null;
System.out.println("");
for(String i:list1) {
	System.out.print(i+" ");
}
輸出:
1 2 3
1 2 3
ArrayList<
String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); ArrayList<String> list1 = list; for(String i:list1) { System.out.print(i+" "); } list.clear(); System.out.println(""); for(String i:list1) { System.out.print(i+" "); } 輸出: 1 2 3 【空】

我只想清個list重用,但是它把list指向的資料全刪了,打擾了!萬一list被層層呼叫後使用一下list.clear(),那不是全完蛋了。今後如果想不清資料或者清了不清都不影響,還是推薦使用list=null或者list= new ArrayList<>(),慎用Array List.clear().