Collection的遍历方式
迭代器遍历
增强for遍历
Lambda表达式遍历
普通的for循环遍历只有List系列集合才能用,Set系列没有索引所以用不了for循环遍历
一,迭代器遍历
细节1:当指针遍历完元素后会指向一个空位,此时打印指针所指的元素会报错NoSuchElementException
细节2:当迭代器遍历完成后,指针不会复位
我们可以看到,当我们要输出指针所指位置是否有元素时,打印false,说明指针所指没有元素,此时我们要第二次遍历集合时就要在获取一个新的迭代器对象
细节3:循环中只能使用一次next方法
我们发现当循环中有两个next方法时,一次循环就会获取两个元素指针也会移动两次,当集合中的元素个数为奇数时我们的第二个指针就会指向null,获取不到元素,就会报错
细节4:迭代器遍历时,不能使用集合中的方法进行增加或删除
出现并发修改异常
不能使用集合方法进行增加或者删除
实在要删除可以使用迭代器提供的remove方法进行删除//如下图
添加暂时没有办法
小结
1.迭代器在遍历集合时不依赖索引
2.迭代器需要掌握三个方法:
3,迭代器的四个细节