首页 > 编程语言 >Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法

时间:2023-03-11 22:33:07浏览次数:38  
标签:Java locationVO iterator ConcurrentModificationException BusGoodsLocationVO getR


场景

对ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。

出现异常的代码:

//删除非此退货单对应的货位
for (BusGoodsLocationVO locationVO : page.getRecords()) {
if (locationVO.getRefundOrderFlag() == 1 && locationVO.getIsSelected() == 0) {
page.getRecords().remove(locationVO);
}
}

实现

使用迭代器就可以解决

Iterator<BusGoodsLocationVO> iterator = page.getRecords().iterator();
while(iterator.hasNext()){
BusGoodsLocationVO locationVO = iterator.next();
if (locationVO.getRefundOrderFlag() == 1 && locationVO.getIsSelected() == 0) {
iterator.remove();
}
}

 

标签:Java,locationVO,iterator,ConcurrentModificationException,BusGoodsLocationVO,getR
From: https://blog.51cto.com/BADAOLIUMANGQZ/6115093

相关文章

  • java的数据和表达式
    一、基本语法元素1.空白和注释及语句(1)空白:换行符、回车符、空格键、水平定位键(Tab)编译器会忽略掉多余的空白作用:增加程序的易读性(2)注释:主要作用是将代码解释其功......
  • Java 基础 - 线程的全部方法,线程池的使用
    1.线程的全部方法静态方法:staticThreadcurrentThread():返回当前线程staticvoidyield():把当前线程的执行权让给优先级更高或相对的线程staticvoidsleep(longmill......
  • 03-java下载
    #java版本javase标准版javaME嵌入式。手机,小家电。————没人学javaEE企业级开发![](https://img2023.cnblogs.com/blog/1552841/202303/1552841-202303......
  • java SE 八股2
    1.hashmaphashmap不是线程安全,若要线程安全使用concurrenthashmap.hashtable是为了和老代码兼容。(1)HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到......
  • 【java基础】java的强引用、弱引用、软引用、虚引用
    前言Java执行GC(垃圾回收)判断对象是否存活有两种方式,分别是引用计数法和引用链法(可达性分析法)。引用计数:Java堆中给每个对象都有一个引用计数器,每当某个对象在其它地......
  • 64.异常
    1.异常基本概念  BjarneStroustrup说:提供异常的基本目的就是为了处理上面的问题。基本思想是:让一个函数在发现了自己无法处理的错误时抛出(throw)一个异常,然后它的(直接或......
  • java生态下的后端开发都有哪些技术栈?
    前言    我08年毕业,大学跟着老师培训学习的C#,那时(2003-2010)它很是较时髦,毕业后就从事了winform窗体应用程序开发。慢慢的web网站兴起,就转到aps.net开发,再到后来就上......
  • nacos实现Java和.NetCore的服务注册和调用
    用nacos作为服务注册中心,如何注册.NetCore服务,如何在Java中调用.NetCore服务呢?可以分为下面几个步骤: 0.运行nacos 1.开发.netcore服务,然后调用nacos提供的.netcore......
  • 2023-03-11 Java中的动态数组
    类似C++中的vector,动态数组需要满足以下功能增(insert)删(remove)改(set)查(get和contain)支持泛型自动扩容和缩容上面的实现实际相当于JDK标准库中的java.util......
  • Java中值传递相关问题
    Java中只存在值传递,不存在引用传递1.如果形参是基本数据类型,那么形参拷贝的是实参变量的值2.如果形参是引用数据类型,那么形参拷贝的是实参变量的地址。二者本质都是值......