<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲日本香蕉视频观看视频| 国产AV无码专区亚洲AV手机麻豆| 蜜芽亚洲av无码精品色午夜| 三年片免费高清版 | 国产午夜无码视频免费网站| 亚洲国产精品无码久久久秋霞1| 成人免费777777| 亚洲a∨无码精品色午夜| 国产又大又长又粗又硬的免费视频 | 亚洲成人一级电影| 成人免费无码大片a毛片软件| 亚洲aⅴ无码专区在线观看春色 | 亚洲免费在线观看视频| 亚洲1区1区3区4区产品乱码芒果| 国产精品成人免费福利| 波多野结衣亚洲一级| 国产精品国产免费无码专区不卡| 欧亚一级毛片免费看| 亚洲精品亚洲人成在线观看| 日韩精品无码免费一区二区三区 | 亚洲成a人片在线观看播放| 7723日本高清完整版免费| 亚洲日韩乱码中文字幕| 亚洲第一黄片大全| 久久精品免费一区二区三区| 亚洲视频在线观看地址| 午夜男人一级毛片免费| h片在线播放免费高清| 久久久久久亚洲Av无码精品专口 | 无码高潮少妇毛多水多水免费| 亚洲a无码综合a国产av中文| 亚洲伊人久久成综合人影院| 免费黄网站在线看| 亚洲欧美第一成人网站7777| 亚洲永久精品ww47| 91免费精品国自产拍在线不卡| 国内成人精品亚洲日本语音| 亚洲国产精品一区二区成人片国内 | 免费一级全黄少妇性色生活片| 亚洲天堂中文字幕| 四虎永久精品免费观看|