💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
案例代码:https://gitee.com/flymini/codes02/tree/master/collection_/com-learn-collection02 **** ![](https://img.kancloud.cn/2f/45/2f459861d963c59dddd56d7466da4381_643x611.png) 迭代器有 Iterator 和 ListIterator(上图中的 LinkIterator 是写错了,Java 中没有 LinkIterator 这个组件)。 <br/> **1. Iterator** List 和 Set 都有这个迭代器,可以通过该迭代器去遍历集合中的元素。该迭代器提供的方法一共就下面三个。 ```java //判断集合中是否还存在元素,如果有返回true boolean hasNext() //返回集合中的元素 Object next() //删除集合中的元素 void remove() ``` ```java @Test public void testIterator() { List<Integer> list = new ArrayList<>(); list.addAll(Arrays.asList(1, 2, 3, 4, 5)); //获取迭代器 Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()) { Integer integer = iterator.next(); if (integer.intValue() == 3) { iterator.remove(); } } System.out.println(list); //[1, 2, 4, 5] } ``` <br/> **2. ListIterator** 继承 Iterator 接口,提供了专门操作 List 的方法。ListIterator 在 Iterator 的基础上增加了以下几个方法. ```java //判断集合中是否还存在元素,如果有返回true boolean hasPrevious() //返回集合中的元素 Object previous() //在某一个元素前插入一个新元素 void add(Object o) ``` ```java @Test public void testListIterator() { List<Integer> list = new ArrayList<>(); list.addAll(Arrays.asList(1, 2, 3, 4, 5)); //获取迭代器 ListIterator<Integer> iterator = list.listIterator(list.size() - 1); while (iterator.hasPrevious()) { Integer integer = iterator.previous(); if (integer.intValue() == 3) { iterator.add(300); //在集合中等于3的元素前插入一个元素 } System.out.print(integer.intValue() + " "); } //4 3 300 2 1 System.out.println(list); //[1, 2, 300, 3, 4, 5] } ``` <br/> 两个迭代器相比较,不难发现,ListIterator 增加了向前迭代的功能(Iterator只能向后迭代),ListIterator 还可以通过`add`方法向 List 集合中添加元素(Iterator 只能删除元素)。