foreach遍历集合类型和数组类型底层实现的不同
- 集合类型的遍历本质是使用迭代器实现的(list,map,set)
- 数组的遍历是通过for循环来实现的(普通数组)
扩展:
遍历集合的时候移除某个数据:
ArrayList<Integer> list = new ArrayList<>();
(1);
(2);
(3);
(4);
for(int i=0 ;i<();i++){
if (i==2) {
(i);
}
}
(list); //[1, 2, 4]
用foreach的方式会报错,因为底层是用迭代器实现的,迭代器在进行迭代的时候不允许对数据进行增删操作。
ArrayList<Integer> list = new ArrayList<>();
(1);
(2);
(3);
(4);
for (Integer integer : list) {
if (integer==1) {
(integer); //这个地方会报错
}
}
(list);
//以上代码会报错,错误提示如下:
Exception in thread "main"
at $(Unknown Source)
at $(Unknown Source)
at (:20)