清空Arraylist遇到的坑:慎用ArrayList.clear()
阿新 • • 發佈:2018-12-16
無腦上程式碼
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().