`ListIterator`是Java中专门为`List`接口设计的迭代器,相比于普通的迭代器(Iterator),它提供了更多的功能。ListIterator允许你从列表的任一位置开始遍历,并且可以向前或向后移动。 以下是一些主要的`ListIterator`方法: 1. `boolean hasNext()`:检查是否存在下一个元素。 2. `E next()`:返回并移除列表中的下一个元素。 3. `boolean hasPrevious()`:检查是否存在前一个元素。 4. `E previous()`:返回并移除列表中的前一个元素。 5. `nextIndex()`:返回下一个元素的索引。 6. `previousIndex()`:返回前一个元素的索引。 7. `void add(E e)`:在迭代器当前位置之前插入指定元素。 8. `void set(E e)`:用指定元素替换上次调用next()或previous()返回的元素。 9. `void remove()`:移除上次调用next()或previous()返回的元素。 示例代码: ```java List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); ListIterator<String> iterator = list.listIterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); // 在遍历过程中插入元素 if (iterator.nextIndex() == 2) { iterator.add("D"); } } // 向前遍历并修改元素 while (iterator.hasPrevious()) { String element = iterator.previous(); iterator.set(element.toUpperCase()); } System.out.println(list); // 输出: [A, B, D, C] ``` 在这个示例中,我们首先创建了一个包含"A", "B", "C"的ArrayList,并获取了其ListIterator。然后我们在遍历过程中插入了一个"D",并将所有元素改为大写。最后输出的结果反映了这些操作的影响。 [2024-01-13 19:29:34 | AI写代码神器 | 400点数解答]