`
lalanicer
  • 浏览: 29129 次
社区版块
存档分类
最新评论

从ArrayList中删除对象报java.util.ConcurrentModificationException异常解决

    博客分类:
  • java
 
阅读更多

今天遍历一个ArrayList去查找某项是否存在,如果存在的话就从列表中删除,方法如下:

  1. for(Person p : persons){ 
  2.         if(p.getName().equals(name)) 
  3.         persons.remove(p); 
  4. }

结果出现java.util.ConcurrentModificationException错误,一个并发的错误,上网google了一下,有人给出的解释是如果一边遍历ArrayList一边删除当前元素会引发java.util.ConcurrentModificationException 即”要确保遍历过程顺利完成,必须保证遍历过程中不更改集合的内容(Iterator的remove()方法除外),因此,确保遍历可靠的原则是只在一个线程中使用这个集合,或者在多线程中对遍历代码进行同步。”
解决方法1: 

  1. //使用java.util.Iterator 
  2. for(Iterator it = list.iterator(); it.hasNext();){  
  3.         Integer i = (Integer)it.next(); 
  4.         it.remove(); 
  5. }

解决方法2:

 
  1. for(int i = 0; i<persons.size(); i++){ 
  2.     if(persons.get(i).getName().equals(name)) 
  3.         persons.remove(i); 
  4. }

方法2不适合大型数组

分享到:
评论

相关推荐

    Java.util包.docx

    java.util.ArrayList 类提供了可调整大小的数组,并实现了List接口。以下是关于ArrayList中的要点: • 它实现了所有可选的列表操作,并且还允许所有元素,包括空值null。 • 它提供了一些方法来操作内部用来存储...

    Java Methods-java.util.ArrayList.ppt

    Java Methods-java.util.ArrayList.ppt

    java.util包介绍.pdf

    java.util包介绍.pdf很详细的!!!!

    Java学生成绩管理系统源代码

    Java学生成绩管理系统源...import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.StringTokenizer;

    Java学生成绩管理系统实例(ArrayList)

    import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; /** * @Author Ziph * @date 2020/2/19 * @Email mylifes1110@163.com */ public class TestDemo implemen

    JAVA SCM供应链项目代码

    import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import ...

    java.util 包 是Java中很大的一个集合

    运用下列类进行JAVA编程: Date Calendar Random 使用 Collection 接口及其实现类 ArrayList LinkedList 使用 HashMap 使用Vector 等方法的使用

    项目源码-java企业QQ项目

    【项目源码】-java企业QQ项目 ... import java.awt....import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.swing.JOptionPane; import com.mingrisoft.userList.User;

    xml2jsonjar包

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import ...

    Java.util.Collection类的学习.pdf

    Java.util.Collection类是Java编程语言中的一个基础类库,提供了许多有用的方法来操作集合对象。Collection类包含了许多静态方法,可以对集合进行排序、混排、反转、替换等操作。 1. Overview Java.util....

    Java调用百度人脸对比接口进行人脸(图片)对比

    前三步和人脸检测代码一样 ...import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class FaceMatch{ /** * 重要提示代码中所需工具类 * FileUtil,Ba

    Java集合多线程安全.docx

    import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * @author: Raicho * @Description: * @program: mianshi * @create: 2020-07-17 15:32 **/ public class ...

    项目源码-java图书馆管理系统

    import java.util.ArrayList; import java.util.List; import com.wsy.model.Back; import com.wsy.model.BookInfo; import com.wsy.model.BookType; import com.wsy.model.Borrow; import com.wsy.model.Operater;...

    Java设计二次元动漫人物演出活动小游戏代码.docx

    import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class AnimeShowGame { // 声明全局变量 private static ArrayList&lt;String&gt; characters = new ArrayList(); private ...

    Java课程设计-老鼠走迷宫

    import java.util.ArrayList; import java.util.Random; import java.util.Scanner; /** * 使用递归分割绘制迷宫 * * @author WangSong * * @Time 2020-6-22 */ abstract class Arithmetic { /** 路表示为1...

    Java语言的Util类详细介绍

    Java语言的Util类详细介绍 ...虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除元素),Iterator将抛出...

    公司质量控制部门管理活动的 Java 代码.docx

    import java.util.ArrayList; import java.util.List; public class QualityControlDepartment { // 定义变量 private String departmentName; private List&lt;String&gt; managementActivities; // 构造函数 ...

    Java遍历arrayList的四种方法

    import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo { public static void main(String args[]){ List&lt;String&gt; list = new ArrayList(); list.add(...

    MP3Player多媒体

    import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener;...

    安卓开发-Android 主流的图片浏览的全屏缩放效果SmoothImageDemo软件源码

    import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics....

Global site tag (gtag.js) - Google Analytics