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

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 济源市| 榆树市| 陕西省| 沙雅县| 扶余县| 清原| 泰州市| 牙克石市| 博白县| 阜平县| 卢氏县| 清新县| 花莲县| 濮阳市| 宁化县| 邢台市| 东丽区| 南木林县| 德昌县| 嘉兴市| 拉孜县| 观塘区| 墨竹工卡县| 互助| 黔西县| 长海县| 图片| 永修县| 盱眙县| 商洛市| 潢川县| 灵武市| 教育| 洮南市| 平顶山市| 平塘县| 黔江区| 平昌县| 凌海市| 迁安市| 吴旗县|