<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 零全零美 閱讀(195) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 久久久青草青青亚洲国产免观| 最新黄色免费网站| 午夜免费国产体验区免费的| 亚洲av无码一区二区三区人妖| 国产精品亚洲一区二区麻豆| 亚洲天堂2016| 亚洲综合无码一区二区痴汉| 中文字幕精品三区无码亚洲| 亚洲色欲色欲www在线播放| 亚洲AV女人18毛片水真多| 亚洲第一成年免费网站| 色窝窝亚洲AV网在线观看| 免费看一级高潮毛片| 一本大道一卡二大卡三卡免费 | 亚洲av中文无码| 亚洲国产婷婷香蕉久久久久久| 亚洲爽爽一区二区三区| 亚洲中文字幕无码永久在线| 婷婷亚洲久悠悠色悠在线播放| 久久亚洲日韩看片无码| 亚洲另类视频在线观看| 亚洲欧洲AV无码专区| 国产av无码专区亚洲av毛片搜| 日韩电影免费在线观看网址| 在线观看黄片免费入口不卡| 亚洲色无码专区在线观看| 亚洲国产成人乱码精品女人久久久不卡 | 久久精品国产亚洲AV香蕉| 亚洲一区二区三区高清视频| 亚洲日本VA午夜在线影院| 精品久久久久成人码免费动漫| 夫妻免费无码V看片| 亚洲精品和日本精品| 亚洲av女电影网| 2019亚洲午夜无码天堂| 牛牛在线精品观看免费正| 国产免费一区二区三区在线观看| 国产四虎免费精品视频| 免费国产成人午夜私人影视| 亚洲综合av永久无码精品一区二区| 亚洲国产二区三区久久|