算是回顧知識吧,以前就聽老師說list遍歷列表要刪除元素要用iterator.remove(),沒怎麼注意,今天試着寫了一個方法,運行了一下發現還真是。
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
arrayList.add(i + "");
}
for (int i = 0; i < arrayList.size(); i++) {
arrayList.remove(i);
System.out.println(arrayList.size());
}
爲什麼刪不乾淨呢,因爲remove執行後,arraylist.size()不斷變小,導致原來下標的數據沒了(對,到其他地方去了),所以刪不乾淨。正確的做法是:
ArrayList<String> arrayList = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
arrayList.add(i + "");
}
Iterator<String> it = arrayList.iterator();
while (it.hasNext()) {
String xString=it.next();
it.remove();
}
System.out.println(arrayList.size()+"");
記錄一下。