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 閱讀(827) 評論(0)  編輯  收藏 所屬分類: 開發手記

          蜀中人氏,躬耕于珠海

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

          常用鏈接

          留言簿(2)

          隨筆分類(71)

          隨筆檔案(54)

          博客

          文檔

          站點

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 51266
          • 排名 - 974

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 临桂县| 桃园县| 南澳县| 丹凤县| 南充市| 南昌县| 浑源县| 毕节市| 濮阳市| 客服| 京山县| 渝中区| 湖南省| 保亭| 金山区| 萝北县| 沅江市| 石渠县| 石门县| 淮南市| 全椒县| 宣恩县| 霍邱县| 恭城| 万宁市| 绥棱县| 康马县| 河南省| 东宁县| 富宁县| 扶沟县| 呼图壁县| 桃源县| 会宁县| 桐柏县| 彰武县| 禄丰县| 安国市| 铁岭市| 平邑县| 伊通|