我是靠谱客的博主 虚拟滑板,最近开发中收集的这篇文章主要介绍java.util.ConcurrentModificationException 解决办法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

出现 java.util.ConcurrentModificationException 时的解决办法
2007-06-30 16:48

在对一个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)) {
         iterator.remove();        //这行代码是关键。
         m.remove(sessionId);
       }
     }
     System.out.println(m.get("ggg"));
     System.out.println(m.get("lizongbo"));
     System.out.println(m.get("544"));
   }

 

最后

以上就是虚拟滑板为你收集整理的java.util.ConcurrentModificationException 解决办法的全部内容,希望文章能够帮你解决java.util.ConcurrentModificationException 解决办法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部