七郎's JavaBlog

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

          在對(duì)一個(gè)map進(jìn)行迭代遍歷并刪除一些符合條件的鍵值對(duì)的時(shí)候,容易出現(xiàn)

           java.util.ConcurrentModificationException 這個(gè)異常。
          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();        //這行代碼是關(guān)鍵,使循環(huán)知道m(xù)大小已經(jīng)改變        
                 }
               }
               System.out.println(m.get("ggg"));
               System.out.println(m.get("lizongbo"));
               System.out.println(m.get("544"));
             }


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 鄂伦春自治旗| 墨脱县| 米脂县| 平遥县| 丹阳市| 承德县| 甘德县| 庐江县| 岳阳市| 玛纳斯县| 衡水市| 都江堰市| 额尔古纳市| 大石桥市| 阿克苏市| 精河县| 邯郸县| 兴安盟| 镇安县| 海原县| 嵊州市| 英德市| 汕头市| 潮安县| 山东| 马龙县| 资源县| 城固县| 曲水县| 万载县| 华坪县| 瑞安市| 罗平县| 沁源县| 泸水县| 措美县| 大荔县| 高邮市| 望江县| 江陵县| 那曲县|