java操作集合中 concurrentModifyException 异常的原因分析


不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
正例

Iterator<String> iterator = list.iterator();
  while (iterator.hasNext()) {
  String item = iterator.next();
  if (删除元素的条件) {
  iterator.remove();
 }
}

反例

List<String> a = new ArrayList<String>();
  list.add("1");
  list.add("2");
  for (String item : list) {
    if ("1".equals(item)) {
      list.remove(item);
    }
  }

 

subList 也一样

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM