java.util.ConcurrentModificationException异常
来源:互联网 发布:淘宝美工关联 编辑:程序博客网 时间:2024/05/22 01:54
1、今天在写一个带缓存功能的访问代理程序时出现了java.util.ConcurrentModificationException异常,原来在通过Iterator进行遍历的时候,如果直接对HashMap进行操作后,再继续用之前的Iterator进行遍历就会出现这个异常,表示其HashMap已经被修改。
源程序代码片段如下:caches为一个HashMap对象
String sameKeyPart = accesserClassName + "@" + methodName + "@" + parameterKeyString + "@";
Iterator keys = caches.keySet().iterator();
String key = null;
while (keys.hasNext()) ...{
key = (String) keys.next();
if (key.startsWith(sameKeyPart)) ...{
caches.remove(key);
}
}
解决办法为通过其相应的Iterator进行删除就可以了,修改后代码片段如下:
String sameKeyPart = accesserClassName + "@" + methodName + "@" + parameterKeyString + "@";
Iterator keys = caches.keySet().iterator();
String key = null;
while (keys.hasNext()) ...{
key = (String) keys.next();
if (key.startsWith(sameKeyPart)) ...{
keys.remove();
}
}
对List如果直接进行操作后,也会出现这个异常,同上,也是使用Iterator的remove方法进行操作
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
Iterator<String> it = list.iterator();
while (it.hasNext())
{
String str = it.next();
if (str.equals("A"))
{
list.remove(str);
}
}
修改后的代码如下:
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
System.out.println(list.size());
Iterator<String> it = list.iterator();
while (it.hasNext())
{
String str = it.next();
if (str.equals("A"))
{
// list.remove(str);
it.remove();
}
}
System.out.println(list.size());
- 异常:java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException 异常
- 异常:java.util.ConcurrentModificationException
- 异常:java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException 异常
- java.util.ConcurrentModificationException 异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常。
- Web测试点-登录,搜索,翻页,输入框
- 学生账号部署XAP程序,在Lumia手机上
- Oracle 11.2.0.1 INS-32025 INS-52001 解决方法
- Java的身份证号码工具类
- 小陈的站正式启用,欢迎造访。
- java.util.ConcurrentModificationException异常
- 黑马程序员_java截图工具
- 伪静态及其原理实现
- Jpcap学习笔记0--Jpcap帮助文档
- Openshift + GOLANG
- 再析数学与编程
- 搬运工 Struts2 Action的单元测试
- zend studio 9.0.4 破解、汉化和字体颜色及快捷键相关设置
- 初探MSSQL注入