直接上代码:
public static void main (String [] args){
//数组
int array[] = new int[3];
for(int i = 0 ; i<array.length;i++){
System.out.println(array[i]);
}
//集合
List<String> list = new ArrayList<String>();
list.add("jint");
list.add("mingt");
list.add("zuot");
for(int i = 0; i<list.size();i++){
String string = list.get(i);
System.out.println(string);
}
//迭代器
List<String> listdiedaiqi = new ArrayList<String>();
listdiedaiqi.add("关羽1");
listdiedaiqi.add("关羽2");
listdiedaiqi.add("关羽3");
listdiedaiqi.add("关羽4");
List<String> linkList = new LinkedList<String>();
linkList.add("link1");
linkList.add("link2");
linkList.add("link3");
linkList.add("link4");
Set<String> set = new HashSet<String>();
set.add("set1");
set.add("set2");
set.add("set3");
set.add("set4");
//使用迭代器遍历ArrayList集合
Iterator<String> listIt = listdiedaiqi.iterator();
while(listIt.hasNext()){
String string = listIt.next();
System.out.println("使用迭代器遍历ArrayList集合:"+string);
}
//增强for循环
for(String string : listdiedaiqi){
set.add(string);
linkList.add(string);
// listdiedaiqi.remove("关羽1");//增强foreach本质是迭代器所有使用remove或add也会有异常抛出
// listdiedaiqi.add("关羽1");
System.out.println("//增强for循环遍历ArrayList集合:"+string);
}
set.add("关羽1");
linkList.add("关羽1");
System.out.println("无序不可重复set:"+set);
System.out.println("有序可重复linkList:"+linkList);
//普通循环
for(int i = 0;i<listdiedaiqi.size();i++){
System.out.println("//普通循环遍历ArrayList集合:"+listdiedaiqi.get(i));
}
//使用迭代器遍历Set集合
Iterator<String> setIt = set.iterator();
while(setIt.hasNext()){
String string = setIt.next();
System.out.println("迭代器遍历Set集合:"+string);
}
//使用迭代器遍历linkList集合
Iterator<String> linkListIt = linkList.iterator();
while(linkListIt.hasNext()){
String string = linkListIt.next();
if(string.equals("link1")){
// linkList.remove(string);//抛出线程不安全异常
// linkList.add(string);
}
System.out.println("迭代器遍历linkList集合:"+string);
}
}
报错误的原因是:因为在你迭代之前,迭代器已经被通过list.itertor()创建出来了,如果在迭代的过程中,又对list进行了改变其容器大小的操作,那么Java就会给出异常。因为此时Iterator对象已经无法主动同步list做出的改变,Java会认为你做出这样的操作是线程不安全的,就会给出善意的提醒(抛出ConcurrentModificationException异常)
具体相关链接:https://blog.csdn.net/frankarmstrong/article/details/56003697