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 }