java.util.ConcurrentModificationException

来源:互联网 发布:网络大电影设备 编辑:程序博客网 时间:2024/06/10 04:44

Java Map 对象不能在迭代时进行删除操作

示例如下:

<span style="white-space:pre"></span>@Testpublic void removeTest(){Map<String,Object> map = new HashMap<String,Object>();map.put("hello","world");map.put("kitty", "mvane");for(String str : map.keySet()){System.out.println(map.get(str));}for(String str : map.keySet()){map.remove(str);// 抛出 java.util.ConcurrentModificationException}}@Testpublic void removeTest2(){Map<String,Object> map = new HashMap<String,Object>();map.put("hello","world");map.put("kitty", "mvane");for(Iterator<String> iterator = map.keySet().iterator();iterator.hasNext();){System.out.println(map.get(iterator.next()));}for(Iterator<String> iterator = map.keySet().iterator();iterator.hasNext();){String str = iterator.next();if(str.equals("kitty")){iterator.remove();map.remove(str);}}for(Iterator<String> iterator = map.keySet().iterator();iterator.hasNext();){System.out.println(map.get(iterator.next()));}}


0 0
原创粉丝点击