<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零全零美(www.zzgwt.com)
    生活中的很多事情,并不像If...Else那么簡單!
    posts - 96,comments - 52,trackbacks - 0

    當使用 fail-fast iterator 對 Collection 或 Map 進行迭代操作過程中嘗試直接修改 Collection / Map 的內容時,即使是在單線程下運行, java.util.ConcurrentModificationException 異常也將被拋出。

      Iterator 是工作在一個獨立的線程中,并且擁有一個 mutex 鎖。 Iterator 被創建之后會建立一個指向原來對象的單鏈索引表,當原來的對象數量發生變化時,這個索引表的內容不會同步改變,所以當索引指針往后移動的時候就找不到要迭代的對象,所以按照 fail-fast 原則 Iterator 會馬上拋出 java.util.ConcurrentModificationException 異常。

      所以 Iterator 在工作的時候是不允許被迭代的對象被改變的。但你可以使用 Iterator 本身的方法 remove() 來刪除對象, Iterator.remove() 方法會在刪除當前迭代對象的同時維護索引的一致性。

      有意思的是如果你的 Collection / Map 對象實際只有一個元素的時候, ConcurrentModificationException 異常并不會被拋出。這也就是為什么在 javadoc 里面指出: it would be wrong to write a program that depended on this exception for its correctness: ConcurrentModificationException should be used only to detect bugs.

    使用LinkedIterator解決,LinkedIterator有add方法,可以向迭代對象中添加數據

    在使用Foreach迭代時,如果使用如果刪除元素,也會發生異常,

    posted on 2008-04-18 00:33 零全零美 閱讀(194) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品无码免费播放| 三年片在线观看免费大全电影 | 亚洲国产精品无码久久久蜜芽| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 伊人久久免费视频| 亚洲av无码乱码国产精品| 最近国语视频在线观看免费播放| 亚洲第一成人影院| 国产精品免费αv视频| 国产中文在线亚洲精品官网| 国产高潮久久免费观看| 伊人久久综在合线亚洲91| 国产真人无码作爱免费视频 | 久草视频免费在线观看| 亚洲AV无码一区二区三区在线| 免费福利网站在线观看| 亚洲日本一线产区和二线产区对比| 女性无套免费网站在线看| 亚洲av永久无码精品秋霞电影秋 | 91亚洲导航深夜福利| 黄页网站免费在线观看| 亚洲精品久久无码av片俺去也| 国产男女性潮高清免费网站| 男女作爱免费网站| 亚洲AV无码精品色午夜果冻不卡| 3d成人免费动漫在线观看| 亚洲欧美日韩一区二区三区在线| 日韩a在线观看免费观看| 一区二区三区免费电影| 亚洲AV日韩AV高潮无码专区| 一级女人18毛片免费| 久久精品国产亚洲av瑜伽| 亚洲精品国产品国语在线| 91成年人免费视频| 国产亚洲精彩视频| 亚洲国产一区二区a毛片| 成年人免费观看视频网站| 福利免费在线观看| 亚洲av成人综合网| 亚洲午夜激情视频| 丁香花免费高清视频完整版|