迭代器 
迭代器是用于遍历集合的工具。在 Java 里,Iterator接口为集合元素的遍历提供了支持。通过使用迭代器,能够按照顺序逐个访问集合中的元素,同时还可以在遍历过程中对元素进行移除操作。
迭代器的基本使用 
下面是使用迭代器遍历List集合的示例代码:
java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample {
    public static void main(String[] args) {
        // 创建一个 List 集合
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        // 获取迭代器
        Iterator<String> iterator = list.iterator();
        // 使用迭代器遍历集合
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }
    }
}在上述代码中:
- 首先创建了一个ArrayList集合,并且添加了几个元素。
- 接着调用集合的iterator()方法获取一个迭代器对象。
- 然后运用while循环和迭代器的hasNext()方法来检查是否还有下一个元素,若有则使用next()方法获取该元素并打印。
迭代器的移除操作 
迭代器还提供了remove()方法,可在遍历过程中移除元素。示例如下:
java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorRemoveExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            if (element.equals("banana")) {
                iterator.remove();
            }
        }
        System.out.println(list);
    }
}在这个示例中,当遍历到元素"banana"时,调用iterator.remove()方法将其从集合里移除。
ListIterator 
对于List集合,还有一种特殊的迭代器ListIterator,它不仅具备Iterator的功能,还能进行双向遍历以及在遍历过程中添加元素。示例如下:
java
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        ListIterator<String> listIterator = list.listIterator();
        // 正向遍历
        while (listIterator.hasNext()) {
            System.out.println(listIterator.next());
        }
        // 反向遍历
        while (listIterator.hasPrevious()) {
            System.out.println(listIterator.previous());
        }
        // 在遍历过程中添加元素
        listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            if (listIterator.next().equals("banana")) {
                listIterator.add("date");
            }
        }
        System.out.println(list);
    }
}在上述代码中,先使用ListIterator进行正向遍历,再进行反向遍历,最后在遍历过程中当遇到元素"banana"时添加元素"date"。