关于操作计数器(modCount),再通过案例说明一下
public class test2 {
public static void main(String[] args) {
int index = 100;
ArrayList arrayList = new ArrayList(index);
for (int i = 0; i < index ; i++) {
arrayList.add(i);
}Iterator<Integer> iterator = arrayList.iterator();
while (iterator.hasNext()){
int a = iterator.next();
if(a == 3){
arrayList.remove(a); // list 删除了元素
}
}
}
}
运行结果:

从案例中我们可以看到,迭代的过程中是不允许删除或者添加元素的,修改没有问题,要保证长度不变。
再来看一个案例
public class test2 {
public static void main(String[] args) {
long[] long1 = new long[]{1,2,3,5};
List arrayList1 = Arrays.asList(long1);
System.out.println(arrayList1.size());Long[] long2 = new Long[]{1l,2l,3l,5l};
List arrayList2 = Arrays.asList(long2);
System.out.println(arrayList2.size());
}
}
运行结果:

我们要注意基本数据类型是不支持泛型化的。所以数组转list需要小心这种情况。
尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili
本文通过实例展示了在Java中使用ArrayList时,迭代器进行元素删除导致的异常。强调了在迭代过程中不能直接修改集合,以及基本数据类型数组转换为List时的注意事项。同时提醒学习者注意Java编程中的常见陷阱。
7288

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



