Loading... > java.util.Iterator:用于迭代访问(即遍历) Collection 中的元 素,因此 Iterator 对象也被称为迭代器。 # 1、Iterator接口 * 迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个 元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业 术语称为迭代。 * Collection集合获取迭代器的方法 `public Iterator iterator()` :获取集合对应的迭代器,用来遍历集合中的元素。 * Iterator迭代器的常用方法 `public boolean hasNext()` :如果仍有元素可以迭代,则返回 true。 `public E next()` :返回迭代的下一个元素。 【注意】 在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生 java.util.NoSuchElementException没有集合元素的错误。 ```java has-numbering public static void main(String[] args) { // 创建结合 Collection<String> col = new ArrayList<String>(); // 添加元素 col.add("张三"); col.add("李四"); col.add("王五"); col.add("小师妹"); // 获取迭代器 Iterator<String> iterator = col.iterator(); // 遍历集合 while (iterator.hasNext()) { System.out.println(iterator.next()); } } ``` # 2、迭代器的实现原理 Iterator迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素。 在调用Iterator的next方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的 next方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,当再次调用next方法时,迭代器的 索引会指向第二个元素并将该元素返回,依此类推,直到hasNext方法返回false,表示到达了集合的末尾,终止对 元素的遍历。 ![](https://blog.fivk.cn/usr/uploads/2022/03/2541156377.png) # 3、增强for循环 增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。 ```java has-numbering for(数据类型 变量名 : Collection集合/数组) { // } ``` 【注意】增强for循环必须有被遍历的目标。目标只能是Collection或者是数组。增强for仅仅作为遍历操作出现。 ```java has-numbering public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; Collection<String> col = new ArrayList<String>(); col.add("张三"); col.add("李四"); col.add("王五"); col.add("小师妹"); // 遍历数组 for (int i : arr) { System.out.println(i); } // 遍历集合 for (String s : col) { System.out.println(s); } } ``` > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2022 年 03 月 22 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏