package cn.linklist.demo1; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListDemo1 { /** * 迭代器的并发异常 * 增强for循环 * 在遍历或者迭代过程中对集合进行增删 都会发生异常 */ public static void main(String[] args) { //fun(); fun1(); } public static void fun(){ List<String> s=new ArrayList<String>(); s.add("abc"); s.add("abc1"); s.add("abc2"); s.add("abc3"); //判断集合中是否有"abc" 假如有 那么把"我爱java" 添加到集合中 for(int i=0;i<s.size();i++){ System.out.println(s.get(i)); if(s.get(i).equals("abc")){ s.add("我爱java"); } } for(int i=0;i<s.size();i++){ System.out.println(s.get(i)); } } //异常:java.util.ConcurrentModificationException public static void fun1(){ List<String> s=new ArrayList<String>(); s.add("abc"); s.add("abc1"); s.add("abc2"); s.add("abc3"); for(String i:s){ if(i.equals("abc")){ s.add("我爱java"); } System.out.println(s); } } //异常:java.util.ConcurrentModificationException public static void fun2(){ List<String> s=new ArrayList<String>(); s.add("abc"); s.add("abc1"); s.add("abc2"); s.add("abc3"); Iterator<String> it=s.iterator(); while(it.hasNext()){ String s1=it.next(); if(s1.equals("abc")){ s.add("我爱java"); System.out.println(s); } } } }