實現集合類的元素刪除和修改的一點實踐。。。

2021-09-05 15:09:07 字數 488 閱讀 1754

一點很小的心得。

眾所周知,具有迭代介面的集合類可以用foreach來遍歷。但要求迭代過程不能被重置,也就是不能新增,刪除或修改。有時候我們必須要這樣做,就需要另闢蹊徑來實現遍歷。

比如listview控制項中的selectitems是乙個基於items的子集合。如果需要刪除所選項時,無法利用foreach來實現。這時候可以用類似於下面的**了實現:

while (alist.selecteditems.count > 0)

利用selecteditems的動態性,固定刪除第乙個選項即可。

有時候我們需要更新集合中各個項的值。這時候也無法運用foreach進行遍歷。我的策略是先利用乙個stack將所有的子項暫時存放,然後依次出棧實現遍歷,**類似於:

foreach(object item in collection)

while(astack.count>0)

有點笨的方法。但在子集個數不多也不大,對時間要求不bt的情況下用用還是可以的。

集合迴圈刪除元素的報錯

拋concurrentmodificationexception異常!foreach 寫法實際上是對的 iterable hasnext next 方法的簡寫。因此我們從list.iterator 著手分析,跟蹤 iterator 方法,該方法返回了 itr 迭代器物件。找到 list 的迭代器類 ...

List集合刪除元素的時候刪除不掉

今天博主遇到了list集合刪除元素失敗的問題,由於自以為對集合比較了解,所以首先排除集合刪除的語句的錯誤 integer index 1 list.remove index 但是錯誤就是出現在集合中,我的本意是集合刪除下標為制定資料的那一項內容,傳入的index是integer型別的,所以list集...

List集合刪除元素的時候刪除不掉

今天晚上遇到了list集合刪除元素失敗的問題,由於自以為對集合比較了解,所以首先排除集合刪除的語句的錯誤 integer index 1 list.remove index 但是錯誤就是出現在集合中,我的本意是集合刪除下標為制定資料的那一項內容,傳入的index是integer型別的,所以list集...