代码按照网上修改为类似,还不能解决问题 for (Iterator<String> it = target.keySet().iterator(); it.hasNext(); ) { if(...) it.remove(); } ,后来根据异常名称,推测是在Servlet多线程环境下保持,换成并发ConcurrentHashMap就解决问题了. 参考: HashMap报错:java.util.ConcurrentModificationException…
1:遍历List 同时 remove 元素,出现java.util.ConcurrentModificationException错误 @Test public void test3(){ List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); for (String temp :list) { // 为什么会出错啊? if("2"…
用iterator遍历集合时要注意的地方:不可以对iterator相关的地方做添加或删除操作.否则会报java.util.ConcurrentModificationException 例如如下代码: ArrayList<String> test = new ArrayList<String>(); test.add("1"); test.add("11"); test.add("111"); test.add("…
是因为在map.foreach中又put新的值了 在map.foreach中可能是不可以增删改…
  java.util.ConcurrentModificationException对于这个异常我们一般会认为是在遍历list的时候对这个list做了add,remove等修改操作造成的,最近在线上日志偶尔发现了这个异常,完整异常如下: java.util.ConcurrentModificationException: null at java.util.ArrayList.sort(ArrayList.java:1462) at java.util.Collections.sort(Col…
首先大家先看一段代码: public static void main(String[] args) { List<String> listStr = new ArrayList<String>();      listStr.add("1");      listStr.add("2");      listStr.add("3");      listStr.add("4");      listS…
摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考. 1 foreach循环 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. Java语言从JDK 1.5.0开始引入foreach循环.在遍历数组.集合方面,foreach为开发人员提…
1.写出下面的输出结果 public class test{ public static void main(String [] args) List<String> list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { list.add(String.valueOf(i)); } for(String s : list){ if(s.equals("3")){ list.remove…
今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码:   public class Test {    public static void main(String[] args) {        User user1 = new User();        user1.setId(1);        user1.setName("zhangsan"); Us…
今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码:   public class Test {    public static void main(String[] args) {        User user1 = new User();        user1.setId(1);        user1.setName("zhangsan"); Us…