并发修改异常
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("kim");
list.add("is");
list.add("playing");
list.add("!");
Iterator<String> iterator = list.iterator();
/*
iterator为迭代次数
不能在迭代器遍历中对集合进行添加和删除等操作
具体来说 就是不能更改迭代次数 否则会抛出
ConcurrentModificationException
*/
while(iterator.hasNext()){
String s = iterator.next();
// //比较两个引用类型字符串是否相同要采用equals()方法
// if("is".equals(s)){
// list.remove(s);
// }
System.out.println(s);
}
}
forch遍历集合
/*
for(元素数据类型 变量名:遍历的集合或数组的名称){
//遍历的时候会把遍历到的元素赋值给变量
}
*/
for(String i:list){
System.out.println(i);
}
toArray遍历集合
/*
1. 首先把集合转换成数组
2. 对数组进行遍历
*/
//当不知道如何将集合转换成数组时,可以尝试寻找集合提供的方法 输入为空(此集合) 输出为[]
//根据参数列表 toArray() Object[]; toArray(T[] a) T[]
//toArray() Object[]
Object[] objects = list.toArray();
for (int i = 0; i < objects.length; i++) {
System.out.println(objects[i]);
}
//toArray(T[] a) T[] 返回值与传入数组类型保持一致
String[] strings = list.toArray(list.toArray(new String[0]));
for(String i:strings){
System.out.println(i);
}
本文详细解析了Java编程中常见的并发修改异常(ConcurrentModificationException),并提供了三种不同的集合遍历方式:使用Iterator、for-each循环以及toArray方法。在迭代过程中,强调了不能直接修改集合,否则会导致异常。同时,示例代码展示了如何安全地遍历并操作集合。

被折叠的 条评论
为什么被折叠?



