求高手帮忙点拨一个“擦了小弟一个通宵”的“HashMap多线程安全性”的处理方案。 多线程hashmap线程安全javaJava SE 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是map的遍历问题,使用for循环时,在循环中删除元素会破坏循环列表,有可能抛异常出来的。使用Iterator 就可以了。把List<String> removeKeys=new ArrayList<String>();for (Entry<String, Object> entry : getMap().entrySet()) {if(value.equals(entry.getValue())){removeKeys.add(entry.getKey()); // 这里如果直接删的话,整个map的遍历将报错}}for (String rmKey : removeKeys) {getMap().remove(rmKey);}改为如下形式Iterator it = getMap().keySet().iterator(); Map.Entry entry = null; while(it.hasNext()) { entry = (Entry) it.next(); if (value.equals(entry.getValue())) { it.remove(); } } 楼主试试效果 Collections.synchronizedMap(new HashMap<String, Integer>())这个是实现一个线程安全的hashMap,但是你的mapobj是普通的hashmap,改为map接口或者强转一下。 感谢蜗牛-大哥再次的相助!!感谢方老师再次的亲临指导!!提点,培养!感谢赵4赵老师的百忙中的亲自拔擢!!最后,感谢___________小P的前来捧场!!!!(再有一年的时间,所有的Java技术,可能我都会懂了)有CSDN!!有CSDN精神!!!!!!有祖国软件工程屌丝,有祖国软件工程事业,最美丽,最壮丽的信息工程,上帝学习的工程专业,成为:世界NO.1!!!! 这个命令谁能帮我转成java语言谢谢,悬赏100分 new FileInputStream(s_filePath)处出现问题 html 标记 规范化 static的问题! 简单问题,急!!!!在线等待中。。。。 请教有关java web start读取配置文件问题 关于版面配置的问题,如何实现动态的版面配置 ultraedit如何配置后可以直接编译运行java程序,请教了! 大家快来看看,这是不是rmi的问题??? UltraEdit 的java模板 套汇问题的贪心算法实现 HTTP 请求的一个问题
使用Iterator 就可以了。
把
List<String> removeKeys=new ArrayList<String>();
for (Entry<String, Object> entry : getMap().entrySet()) {
if(value.equals(entry.getValue())){
removeKeys.add(entry.getKey()); // 这里如果直接删的话,整个map的遍历将报错
}
}
for (String rmKey : removeKeys) {
getMap().remove(rmKey);
}
改为如下形式Iterator it = getMap().keySet().iterator();
Map.Entry entry = null;
while(it.hasNext()) {
entry = (Entry) it.next();
if (value.equals(entry.getValue())) {
it.remove();
}
}
楼主试试效果
感谢方老师再次的亲临指导!!提点,培养!
感谢赵4赵老师的百忙中的亲自拔擢!!
最后,感谢___________小P的前来捧场!!!!(再有一年的时间,所有的Java技术,可能我都会懂了)
有CSDN!!有CSDN精神!!!!!!有祖国软件工程屌丝,有祖国软件工程事业,最美丽,最壮丽的信息工程,上帝学习的工程专业,成为:世界NO.1!!!!