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

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

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

    posts - 9, comments - 8, trackbacks - 0, articles - 3
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    ConcurrentModificationException

    Posted on 2007-01-23 11:31 Dr.Water 閱讀(3483) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Java 隨手貼

    ConcurrentModificationException
    一個(gè)不該犯的低級(jí)錯(cuò)誤,今天的代碼突然拋了一個(gè)concurrentModificationException錯(cuò)誤,
    Iterator的一個(gè)基本概念沒(méi)有掌握導(dǎo)致的這個(gè)錯(cuò)誤,就是在Iterator的實(shí)現(xiàn)類(lèi)
    比如Hashtable里面的內(nèi)部類(lèi)
    ?private class Enumerator<T> implements Enumeration<T>, Iterator<T>

    會(huì)在next,或者remove的時(shí)候檢查當(dāng)前集合是否會(huì)在修改狀態(tài),如果是的話(huà)
    就會(huì)拋出 ConcurrentModificationException,而他自己remove則是使用了同步的方法
    而且同步了modCount;expectedModCount;


    ?public T next() {
    ???? if (modCount != expectedModCount)
    ??throw new ConcurrentModificationException();
    ???? return nextElement();
    ?}


    public void remove() {
    ???? if (!iterator)
    ??throw new UnsupportedOperationException();
    ???? if (lastReturned == null)
    ??throw new IllegalStateException("Hashtable Enumerator");
    ???? if (modCount != expectedModCount)
    ??throw new ConcurrentModificationException();

    ???? synchronized(Hashtable.this) {
    ??Entry[] tab = Hashtable.this.table;
    ??int index = (lastReturned.hash & 0x7FFFFFFF) % tab.length;

    ??for (Entry<K,V> e = tab[index], prev = null; e != null;
    ?????? prev = e, e = e.next) {
    ????? if (e == lastReturned) {
    ???modCount++;
    ???expectedModCount++;
    ???if (prev == null)
    ?????? tab[index] = e.next;
    ???else
    ?????? prev.next = e.next;
    ???count--;
    ???lastReturned = null;
    ???return;
    ????? }
    ??}
    ??throw new ConcurrentModificationException();
    ???? }
    ?}
    ??? }
    而自己在next的同時(shí),修改了這個(gè)集合,導(dǎo)致了這個(gè)錯(cuò)誤的出現(xiàn)


    評(píng)論

    # re: ConcurrentModificationException  回復(fù)  更多評(píng)論   

    2010-11-01 13:00 by 呆呆地
    操 怎么修改你咋不說(shuō)
    主站蜘蛛池模板: 亚洲精品~无码抽插| 午夜视频在线在免费| 亚洲午夜福利精品久久 | 中文字幕第一页亚洲| 亚洲AV无码一区二区三区性色| 免费AA片少妇人AA片直播| 18gay台湾男同亚洲男同| 99re6在线视频精品免费下载| 久久青草亚洲AV无码麻豆| 久久精品国产免费| 国产亚洲一区二区三区在线观看| 你懂的网址免费国产| 亚洲国产成人高清在线观看| 免费播放在线日本感人片| 亚洲av女电影网| 啦啦啦完整版免费视频在线观看| 91嫩草亚洲精品| 在线a毛片免费视频观看| 另类专区另类专区亚洲| 亚洲国产精品无码久久久久久曰 | 51午夜精品免费视频| 亚洲国产婷婷六月丁香| 免费A级毛片av无码| 亚洲一级毛片中文字幕| 免费激情视频网站| 国产成人无码免费看片软件| 国产av无码专区亚洲av桃花庵| 一级毛片免费观看| 亚洲日本VA中文字幕久久道具| 国产男女猛烈无遮档免费视频网站 | 嫖丰满老熟妇AAAA片免费看| 亚洲日韩看片无码电影| 免费一级毛片在线播放| 日本免费污片中国特一级| 亚洲精品国产国语| 亚洲国产精品一区二区第一页免| aa级毛片毛片免费观看久| 亚洲精品综合久久中文字幕| 国产视频精品免费| 黄网站免费在线观看| 亚洲欧美成人av在线观看|