博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据key删除Map集合中的key-value映射
阅读量:7206 次
发布时间:2019-06-29

本文共 1364 字,大约阅读时间需要 4 分钟。

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

public static void main(String[] args) {		Map
paramsMap = getMap(); deleteKeyError(paramsMap); } private static void deleteKeyError(Map
paramsMap){ for(Map.Entry
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
paramsMap = getMap(); deleteKeyOfMap(paramsMap); } private static void deleteKeyOfMap(Map
paramsMap){ System.out.println("=====删除前=====\n"+paramsMap); Iterator
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映射,可以使用迭代器的方式! 

转载地址:http://gzlum.baihongyu.com/

你可能感兴趣的文章
用js实现分页功能以及利用xml实现分页功能——数据岛
查看>>
《Programming in Lua 3》读书笔记(十九)
查看>>
html知识点总结
查看>>
博客园
查看>>
Three.js加载3D模型
查看>>
Basic: Fisher's transform
查看>>
mint-ui vue双向绑定
查看>>
Eclipse快捷键一览表(转载)
查看>>
随机访问流 RandomAccessFile
查看>>
图片上传读取代码
查看>>
服务器安装环境基本操作
查看>>
nslookup命令
查看>>
c++函数模板作为类的成员函数,编译报错LNK2019的解决方法
查看>>
Tensorflow安装
查看>>
判断个十百千位之后是否大于20 java——CSDN博客
查看>>
.Net插件编程模型:MEF和MAF[转载]
查看>>
java实现excel的导入导出(poi详解)[转]
查看>>
[转载]浅析jQuery框架与构造对象
查看>>
微信小程序基本入门
查看>>
oracl 数字型函数
查看>>