1 public static void main(String[] args) {
2 List<String> list = new ArrayList<String>();
3 list.add("1");
4 list.add("2");
5 list.add("3");
6 list.add("4");
7 list.add("5");
8 System.out.println("Original list : " + list);
9 System.out.println();
10
11 for (String temp : list) {
12 System.out.println("Check for " + temp);
13 if ("3".equals(temp)) {
14 list.remove(temp);
15 }
16 }
17
18 System.out.println("Removed list : " + list);
19 }

执行以上代码抛出 java.util.ConcurrentModificationException 异常

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
System.out.println("Original list : " + list);
System.out.println(); Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String temp = iterator.next();
System.out.println("Check for " + temp);
if("3".equals(temp)){
iterator.remove();
}
}
System.out.println("Removed list : " + list);
}

使用迭代器可以正常执行

遍历List时删除元素导致List抛出java.util.ConcurrentModificationException异常的更多相关文章

  1. 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作--java.util.ConcurrentModificationException

    摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体 ...

  2. Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法

    当我把Eclipse中的 Android ADT插件从21.1.0更新到22.0.1之后,安装后运行程序抛出java.lang.VerifyError异常. 经过调查,终于找到了一个有效的解决办法: ...

  3. List 调用 remove 方法时抛出 java.lang.UnsupportedOperationException 异常原因

    原因 使用 Arrays.asList(arr) 转换的 List 并不能进行 add 和 remove 操作.       Arrays.asList(arr) 返回的类型是 Aarrays$Arr ...

  4. 遍历list时删除元素的正确做法

    我们往往会遇到需要删除list中满足条件的元素.举例: List<string> list_str =new List<string>() { "A",&q ...

  5. Java 遍历Map时 删除元素

    Java代码   package,,,,,,,,,,,==){ System.out.println("delete this: "+key+" = "+key ...

  6. 关于反序列化时抛出java.io.EOFException异常

    https://www.cnblogs.com/ouhaitao/p/7683568.html https://blog.csdn.net/mym43210/article/details/40081 ...

  7. 遍历List过程中删除操作报java.util.ConcurrentModificationException错误

    1:遍历List 同时 remove 元素,出现java.util.ConcurrentModificationException错误 @Test public void test3(){ List& ...

  8. 集合循环删除问题-报错java.util.ConcurrentModificationException解析

    java.util.ConcurrentModificationException 异常问题详解 环境:JDK 1.8.0_111 在Java开发过程中,使用iterator遍历集合的同时对集合进行修 ...

  9. list删除操作 java.util.ConcurrentModificationException

    首先大家先看一段代码: public static void main(String[] args) { List<String> listStr = new ArrayList<S ...

  10. Hashtable 删除元素, 抛出异常 java.util.ConcurrentModificationException

    今天在对一个Hashtable对象进行 搜索 -> 删除 操作时遇到的一个问题,开始的使用我使用的是Hashtable的Iterator,然后直接执行: Hashtable.remove(key ...

随机推荐

  1. 2023.2.26【模板】扩展Lucas定理

    2023.2.26[模板]扩展Lucas定理 题目概述 求\(\binom {n}{m} mod\) \(p\) 的值,不保证\(p\)为质数 算法流程 (扩展和普通算法毫无关系) 由于\(p\)不是 ...

  2. linux系统下,添加硬盘并挂载到操作系统的shell 脚本范例

    #!/bin/sh #新添加硬盘挂载到操作系统 pvcreate /dev/sdb   / / 一般新添加硬盘都是识别为sdb,当然,也不一定,要具体情况具体分析. vgcreate datavg / ...

  3. mysql数据库总是锁表

    有可能是数据库服务器的磁盘空间满了

  4. DesignPatternPrinciple-设计模式原则

    1. 单一职责原则(Single Responsibility Principle)类T负责两个不同的职责:职责P1,职责P2. using System; using System.Collecti ...

  5. Linux CAN (CAN_J1939)框架及调用流程

    module_init(j1939_module_init);内核编译CAN_J1939模块 在函数j1939_module_init(void)中 ret = register_netdevice_ ...

  6. CAN 接线参考

    汽车CAN总线详解 - 汽车人大空翼 - 博客园 (cnblogs.com) 汽车CAN总线 - helloWorld017 - 博客园 (cnblogs.com) CAN总线布线规范 - 不明白就去 ...

  7. docker指令 —— MySQL一条龙服务

    一.拉取MySQL镜像 简单粗暴拉取: docker pull mysql 拉取合适的版本,docker mysql Tag: # 例如拉取8.0.25 docker pull mysql:8.0.2 ...

  8. 解决Mac安装Homebrew失败

    首先使用Homebrew官网的安装shell命令安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebr ...

  9. xpath、css元素定位

    xpath 1.利用元素唯一属性 //*[@id='xxx'] 2.属性与逻辑结合 解决元素之间多个相同属性重名问题 //*[@id='xxx' and @class='xxx'] 3..//*[te ...

  10. boost asio 网络编程案例简单改写

    boost教程:http://zh.highscore.de/cpp/boost/ 改写7.4网络编程案例,服务器支持连接多个客户端 服务端: #include <iostream> #i ...