博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在遍历数组中,删除指定元素 ,避免ConcurrentModificationException
阅读量:5824 次
发布时间:2019-06-18

本文共 1526 字,大约阅读时间需要 5 分钟。

hot3.png

public static void main(String[] args) {    Collection
 l = new ArrayList
();    for (int i=0; i < 10; ++i) {        l.add(new Integer(4));        l.add(new Integer(5));        l.add(new Integer(6));    }    for (Integer i : l) {        if (i.intValue() == 5) {            l.remove(i);        }    }    System.out.println(l);}

会出现异常

java.util.ConcurrentModificationException

解决方法如下:

我们可以使用Iterator.remove() 比如:

List
 list = new ArrayList<>();// This is a clever way to create the iterator and call iterator.hasNext() like// you would do in a while-loop. It would be the same as doing://     Iterator
 iterator = list.iterator();//     while (iterator.hasNext()) {for (Iterator
 iterator = list.iterator(); iterator.hasNext();) {    String string = iterator.next();    if (string.isEmpty()) {        // Remove the current element from the iterator and the list.        iterator.remove();    }}

注意:遍历集合时,Iterator.remove是唯一的安全方法删除元素

以退为进:

public static void main(String[] args){    Collection
 l = new ArrayList
();    Collection
 itemsToRemove = new ArrayList
();    for (int i=0; i < 10; ++i) {    l.add(new Integer(4));    l.add(new Integer(5));    l.add(new Integer(6));    }    for (Integer i : l)    {        if (i.intValue() == 5)            itemsToRemove.add(i);    }    l.removeAll(itemsToRemove);    System.out.println(l);}

转载于:https://my.oschina.net/u/2477353/blog/617687

你可能感兴趣的文章
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>
ZAB与Paxos算法的联系与区别
查看>>
java 读取本地的json文件
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
JDBC二查询(web基础学习笔记八)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>