posts - 54,  comments - 1,  trackbacks - 0

          當使用Iterator循環訪問Collection時,如果一刪除元素(Collection.remove())就會拋出異常:ConcurrentModificationException .不得其解,在狗狗上找到一個解釋:

          (1)集合只在一處被使用,這自然沒有并發問題,不過還是不可以大膽修改,如果循環中刪除集合中的元素,一定要調用Iterator的remove方法,而不是Collection的remove方法,前者刪除后會修改Iterator的一個值,使得循環以為集合沒被修改,可以繼續進行,而調用后者沒有修改Iterator中的值,繼續循環同樣會拋出異常。至于添加元素,Iterator中沒有提供相應方法,所以如果在循環中添加,添加后就只能跳出循環了。

          (2)同一個集合在多處被使用,索性不要刪除了,本來這種情況就不應該修改集合大小,如果你決得集合大小的修改不會影響程序的正常邏輯,那么使用時只好clone一個了。 

          posted on 2005-08-11 14:42 ZhuJun 閱讀(821) 評論(0)  編輯  收藏 所屬分類: 開發手記

          蜀中人氏,躬耕于珠海

          <2005年8月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(2)

          隨筆分類(71)

          隨筆檔案(54)

          博客

          文檔

          站點

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 50999
          • 排名 - 976

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 梅州市| 桂阳县| 栖霞市| 彩票| 伊宁市| 金乡县| 望谟县| 阜平县| 郧西县| 阳山县| 永登县| 南皮县| 东港市| 洞头县| 霍州市| 洪洞县| 绥中县| 万安县| 方城县| 荆州市| 中牟县| 涟水县| 宁晋县| 贵州省| 金寨县| 左权县| 循化| 安龙县| 荣成市| 卓资县| 三台县| 呼玛县| 平远县| 手游| 廉江市| 桐梓县| 朔州市| 永泰县| 东阿县| 平南县| 贵南县|