一:在遍历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. [转]java.util.Date和java.sql.Date转换

    Date 的类型转换:首先记住java.util.Date 为 java.sql.Date的父类 1.将java.util.Date 转换为 java.sql.Date java.lang.Class ...

  2. MAC自动脚本

    链接: crontab 详细用法 定时任务 Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

  3. C# 添加动态属性

    1.ExpandoObject(System.Dynamic) 2.JObject(Newtonsoft.Json.Linq)

  4. Objective-C学习笔记(三)——用Objective-C编写第一个程序:Hello,World!

    不管是哪一个程序猿,或者是学习哪一门计算机语言.写的第一个程序基本上就是Hello World. 今天我们用OC来实现第一个程序:Hello World. 在Xcode中选择新建一个项目,在对话框中选 ...

  5. [Beego模型] 五、构造查询

    [Beego模型] 一.ORM 使用方法 [Beego模型] 二.CRUD 操作 [Beego模型] 三.高级查询 [Beego模型] 四.使用SQL语句进行查询 [Beego模型] 五.构造查询 [ ...

  6. idea html,js修改不用重启进程

    1Setting -> build-compiler ---勾选  Build project automatically选项 2 快捷键Ctrl + Shift + A查找registry命令 ...

  7. Keras模型的导出和pb文件的转换

    Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况. 两类模型有一些方法是相同的: model.summ ...

  8. InfluxDB源码目录结构解析

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 influxdata主目录结构 [root@localhost ...

  9. ASP.NET MVC 一款可预览、裁剪头像上传组件

    今天介绍一款Web上常用的头像上传组件,常用于头像上传时对用户上传的图片进行裁剪并实时预览,最终效果如下: 源代码结构: Github地址: https://github.com/FrankFan/A ...

  10. windows下JDK环境配置

    原文地址:http://blog.sina.com.cn/s/blog_618592ea0100oeif.html 一.JDK1.6下载 目前JDK最新版本是JDK1.6,到http://java.s ...