JavaSE-14.2.3【并发修改异常ConcurrentModificationException】

复制代码
 1 package day5.lesson2;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 import java.util.List;
 6 
 7 /*
 8 2.4 并发修改异常
 9     出现的原因
10         迭代器遍历的过程中,通过集合对象修改了集合中的元素,造成了迭代器获取元素中判断预期修改值和实际
11         修改值不一致,则会出现:ConcurrentModificationException
12     解决的方案
13         用for循环遍历,然后用集合对象做对应的操作即可
14  */
15 public class ListDemo3 {
16     public static void main(String[] args) {
17         List<String> list = new ArrayList<>();
18         list.add("hello");
19         list.add("world");
20         list.add("java");
21 
22         /*Iterator<String> it = list.iterator();
23         while (it.hasNext()){
24             String s = it.next(); //java.util.ConcurrentModificationException
25             if(s.equals("world")){
26                 list.add("C++");
27             }
28         }*/
29 
30         for(int i=0; i<list.size(); i++){
31             String s = list.get(i); //ok
32             if(s.equals("world")){
33                 list.add("C++");
34             }
35         }
36 
37         System.out.println(list);
38     }
39 }
复制代码

 

posted @   yub4by  阅读(39)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示