解决 java.util.ConcurrentModificationException map不能在循环时remove
直接运行即可:
public static void main(String[] args) {
String value = "1b";
int i=0;
Map<String,String> map = new HashMap<String,String>();//HashMap
map.put("0", "0a"); //增加值
map.put("1", value);
map.put("2", "2c");
map.put("3", "3d");
map.put("4", "4ee");
map.put("5", "5ff");
map.put("6", "6gg");
Set<String> mapSet = map.keySet(); //获取所有的key值 为set的集合
Iterator<String> itor = mapSet.iterator();//获取key的Iterator便利
while(itor.hasNext()){//存在下一个值
i++;
String key = itor.next();//当前key值
//if(map.get(key).equals(value)){//获取value 与 所知道的value比较
//System.out.println("你要找的key :"+key);//相等输出key
System.out.println(key+","+map.get(key));
//if(key.equals("2"))map.remove(key); // -----------------------------如想看效果请注释,注释则抛java.util.ConcurrentModificationException
//}
}
System.out.println("---------------------------i==="+i);
i=0;
map.remove("2");
mapSet = map.keySet(); //获取所有的key值 为set的集合
itor = mapSet.iterator();//获取key的Iterator便利
while(itor.hasNext()){//存在下一个值
i++;
String key = itor.next();//当前key值
//if(map.get(key).equals(value)){//获取value 与 所知道的value比较
//System.out.println("你要找的key :"+key);//相等输出key
System.out.println(key+","+map.get(key));
//if(key.equals("2"))map.remove(key);
//}
}
System.out.println("-2---------------------------i==="+i);
i=0;
map.remove("3");
mapSet = map.keySet(); //获取所有的key值 为set的集合
itor = mapSet.iterator();//获取key的Iterator便利
while(itor.hasNext()){//存在下一个值
i++;
String key = itor.next();//当前key值
//if(map.get(key).equals(value)){//获取value 与 所知道的value比较
//System.out.println("你要找的key :"+key);//相等输出key
System.out.println(key+","+map.get(key));
//if(key.equals("2"))map.remove(key);
//}
}
System.out.println("-3--------------------------i==="+i);
i=0;
map.remove("4");
mapSet = map.keySet(); //获取所有的key值 为set的集合
itor = mapSet.iterator();//获取key的Iterator便利
while(itor.hasNext()){//存在下一个值
i++;
String key = itor.next();//当前key值
//if(map.get(key).equals(value)){//获取value 与 所知道的value比较
//System.out.println("你要找的key :"+key);//相等输出key
System.out.println(key+","+map.get(key));
//if(key.equals("2"))map.remove(key);
//}
}
System.out.println("-4--------------------------i==="+i);
i=0;
}