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 @ 2021-05-30 11:37  yub4by  阅读(39)  评论(0编辑  收藏  举报