七郎's JavaBlog

          草木竹石皆可為劒。至人之用人若鏡,不將不迎,應而不藏,故能勝物而不傷。
          posts - 60, comments - 14, trackbacks - 0, articles - 0

          在對一個map進行迭代遍歷并刪除一些符合條件的鍵值對的時候,容易出現

           java.util.ConcurrentModificationException 這個異常。
          Exception in thread "main" java.util.ConcurrentModificationException
          at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
          at java.util.HashMap$KeyIterator.next(HashMap.java:823)

          解決辦法如下:

          import java.util.*;

          public class TestMap {
             public TestMap() {
             }

             public static void main(String[] args) {
               java.util.Map m = new java.util.HashMap();
               m.put("aaa", "lizongbo ");
               m.put("bbb", " lizongbo");
               m.put("ccc", "lizongbo   ");
               m.put("ddd", "   lizongbo");
               m.put("eee", "lizongbo");
               m.put("fff", "lizongbo");
               m.put("ggg", "lizongbo");
               m.put("adads", "lizongbo");
               m.put("dffd", "lizongbo");
               m.put("dcxv", "lizongbo");
               m.put("lizongbo", "lizongbo");
               m.put("ert", "lizongbo");
               m.put("544", "lizongbo ");
               Iterator iterator = m.keySet().iterator();
               while (iterator.hasNext()) {
                 String sessionId = (String) iterator.next();
                 if ("ggg".equals(sessionId) || "lizongbo".equals(sessionId) ||
                     "544".equals(sessionId)) {
                      m.remove(sessionId);
                      iterator.remove();        //這行代碼是關鍵,使循環知道m大小已經改變        
                 }
               }
               System.out.println(m.get("ggg"));
               System.out.println(m.get("lizongbo"));
               System.out.println(m.get("544"));
             }


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


          網站導航:
           
          主站蜘蛛池模板: 琼海市| 五原县| 轮台县| 象山县| 上栗县| 丹凤县| 永胜县| 北川| 清新县| 丰城市| 六枝特区| 海安县| 封开县| 拉萨市| 怀来县| 保定市| 郎溪县| 天全县| 广安市| 乐都县| 白河县| 衡东县| 乌恰县| 永修县| 九龙城区| 鲁甸县| 兴海县| 榆树市| 天水市| 胶南市| 苏尼特左旗| 尚义县| 兰西县| 毕节市| 泰顺县| 萝北县| 弋阳县| 五华县| 西华县| 岳阳市| 宁远县|