關於list在遍歷中,做出刪除操作的坑

2021-10-03 21:04:31 字數 2011 閱讀 7281

建議如果有時間的同學可以去阿里雲考一下這個認證,考試通過會發乙個電子認證證書,有效期兩年。

listlist = new arraylist();

list.add("1");

list.add("2");

for (string item : list)

}

以上**的執行結果肯定會出乎大家的意料,那麼試一下把if中的「1」換成「2」,會是同樣的結果嗎? 請自行嘗試執行。

listlist = new arraylist();
list.add("1");

list.add("2");

這個步驟會先判斷空間,滿足的情況下,將modcount+1,再將值放入elementdata陣列中(預設長度10)。

public boolean hasnext()
final void checkforcomodification()
判斷通過返回當前位置的值。不通過 就是上面那個異常了。

public boolean remove(object o) 

} else

}return false;

}

fastremove會操作modcount++;

只輸出了1且成功了。為什麼沒有遍歷到2 ?為什麼沒有報錯?

hasnext

(cursor)0 != (size)2      :          true

remove

size->1;(元素1被移除)

hasnext

(cursor)1 != (size)1      :          false

7.直接結束迴圈,不會發生獲取到第二個元素,所以也不會進行判定異常。

遍歷結束,但是丟擲了異常。

hasnext

(cursor)0 != (size)2      :          true

hasnext

(cursor)1 != (size)2      :          true

remove

size->1;(元素1被移除)    modcount++

hasnext

(cursor)2 != (size)1      :          true

遍歷刪除List中的元素

使用iterator的方式可以順利刪除和遍歷 正確方式 public void iteratorremove system.out.println students 使用增強的for迴圈 錯誤方式 在迴圈過程中從list中刪除非基本資料型別以後,繼續迴圈list時會報concurrentmodifi...

在 jsp頁面中遍歷list中的資料

往往我們都會將查詢到的資料顯示到介面中,那麼該如何在介面顯示,請看下面的詳解 0 前提得在jsp頁面中獲取後台傳過來的資料 在此為list集合 list itemcategorylist list request.getattribute itemcategorylist 往往在前台顯示的時候回使用...

python中對list遍歷的過程中刪除元素

使用iterator或索引直接遍歷,然後進行刪除操作會造成list的index溢位和結果錯誤。這是因為當你刪除元素時,游標會進行更新,list的len也會產生變化,導致結果不對。首先介紹第乙個方法 num list 1,2,3,4,5 print num list for item in num l...