一:在遍历Map时是不可以删除key-value映射的,如果根据key删除,如下:

public static void main(String[] args) {
Map<String,Object> paramsMap = getMap();
deleteKeyError(paramsMap);
} private static void deleteKeyError(Map<String,Object> paramsMap){
for(Map.Entry<String,Object> entry:paramsMap.entrySet()){
String key = entry.getKey();
if(ID.equals(key)){
paramsMap.remove(key);
}
}
}

则会报错:并发修改异常,意思就是正在对map进行遍历的过程中不能删除map中的key-value

Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at com.hlcui.test.TestIterator.deleteKeyError(TestIterator.java:26)
at com.hlcui.test.TestIterator.main(TestIterator.java:22)

但是我们可以使用迭代器删除,如下:

	public static void main(String[] args) {
Map<String,Object> paramsMap = getMap();
deleteKeyOfMap(paramsMap);
} private static void deleteKeyOfMap(Map<String,Object> paramsMap){
System.out.println("=====删除前=====\n"+paramsMap);
Iterator<String> iter = paramsMap.keySet().iterator();
while(iter.hasNext()){
String key = iter.next();
if(ID.equals(key)){
iter.remove();
}
}
System.out.println("=====删除后=====\n"+paramsMap);
}

则执行正常,可以根据key删除map中key-value映射

所以如果想根据key删除map集合中的key-value映射,可以使用迭代器的方式!

根据key删除Map集合中的key-value映射的更多相关文章

  1. map集合中对应key的value为null处理办法

    问题: Map集合中对应key的value为null,但是现在需要将这个value转为Integer类型,这个value如果不是null,那么get到的是long类型或者是Bigdecimal类型 处 ...

  2. Java——删除Map集合中key-value值

    通过迭代器删除Map集合中的key-value值 Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext() ...

  3. JavaScript中获取Map集合中的key和value值(前提是:既不知道key为什么值,也不知道value有哪些值)

    for(var i in maps){//通过定义一个局部变量i遍历获取map里面的所有key值 alert(maps[i]); //通过获取key对应的value值 }

  4. 在JavaScript中获取Map集合中的key和value值(前提是:既不知道key为什么值,也不知道value有哪些值)

  5. 在java中获取Map集合中的key和value值

  6. Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别

    1.toString()方法 底层代码 public String toString() { return this; } 其返回值为String类型的字符串本身 Map<String, Obj ...

  7. Day11_55_在Map集合中使用泛型

    在Map集合中使用泛型 ``` import java.util.HashMap; import java.util.Iterator; import java.util.Map; import ja ...

  8. 过滤掉map集合中key或value为空的值

    package cn.com.utils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; impo ...

  9. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

随机推荐

  1. webstorm安装教程

    之前有些一些破解的,但是独独忘记了安装的这个教程,现在补上:见下: 先来一官方的解释:WebStorm是JetBrains 推出的一款强大的HTML5编辑工具,拥有丰富的代码快速编辑,可以智能的补全代 ...

  2. 使用 IntraWeb (31) - IntraWeb 的 Xml 操作使用的是 NativeXml

    在 IWNativeXml 单元. 知道了这个, 以后在其他 Delphi 程序中也可以直接 Uses IWNativeXml 了. TNativeXml (IWNativeXml.TNativeXm ...

  3. Caffe使用step by step:caffe框架下的基本操作和分析

    caffe虽然已经安装了快一个月了,但是caffe使用进展比较缓慢,果然如刘老师说的那样,搭建起来caffe框架环境比较简单,但是完整的从数据准备->模型训练->调参数->合理结果需 ...

  4. C调用lua的table里面的函数

    网上搜索C.C++调用lua函数,有一大堆复制粘贴的. 但是搜索<C调用lua的table里面的函数> 怎么就没几个呢? 经过探索,发现其实逻辑是这样的: 1.根据name获取table ...

  5. 子级div相对于父级div位置不变

    设置父级div为相对位置 设置子级div为绝对位置 代码如下: <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  6. 未解决:长字符串含…

    用reduce拼了一个超长sql语句,大约65000字符,运行通不过,报错: OperationalError: (1054, "Unknown column 'nan' in 'field ...

  7. 使用log4net将C#日志发送到Elasticsearch

    一.安装Elasticsearch 参考前面写的文章:https://www.cnblogs.com/songxingzhu/p/7909486.html 安装完Elasticsearch后,修改/e ...

  8. 解决MySQL8.0报错:Unknown system variable 'validate_password_policy'

    一.问题描述 1.在安装MySQL8.0时,修改临时密码,因密码过于简单(如:123456),不符合MySQL密码规范,会触发一个报错信息: ERROR 1819 (HY000): Your pass ...

  9. CAS Maven

    https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven2+WAR+Ove ...

  10. SessionFactory 执行原生态的SQL语句

    public List<User> getPageIndex(int pageIndex,int topNum){ String hql = "select top(" ...