一:在遍历Map时是不可以删除key-value映射的,如果根据key删除,如下:
public static void main(String[] args) {
Map paramsMap = getMap();
deleteKeyError(paramsMap);
}
private static void deleteKeyError(Map paramsMap){
for( entry:()){
String key = ();
if((key)){
(key);
}
}
}
则会报错:并发修改异常,意思就是正在对map进行遍历的过程中不能删除map中的key-value
Exception in thread "main"
at $(Unknown Source)
at $(Unknown Source)
at $(Unknown Source)
at (:26)
at (:22)
但是我们可以使用迭代器删除,如下:
public static void main(String[] args) {
Map paramsMap = getMap();
deleteKeyOfMap(paramsMap);
}
private static void deleteKeyOfMap(Map paramsMap){
("=====删除前=====\n"+paramsMap);
Iterator iter = ().iterator();
while(()){
String key = ();
if((key)){
();
}
}
("=====删除后=====\n"+paramsMap);
}
则执行正常,可以根据key删除map中key-value映射
所以如果想根据key删除map集合中的key-value映射,可以使用迭代器的方式!