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);
}
}
}
}