Iterator 接口
Iterator 接口是 Java 集合框架中定义的一个接口,它提供了一系列用于遍历集合元素的方法。Iterator 接口定义了以下主要方法:
- hasNext():返回一个布尔值,指示是否存在下一个元素。
- next():返回下一个元素,如果不存在下一个元素,则抛出 NoSuchElementException 异常。
- remove():删除当前指向的元素。
以下是使用 Iterator 接口遍历集合的示例代码:
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
list.add("!");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
Iterable 接口
Iterable 接口是 Java 集合框架中定义的另一个接口,它代表可迭代的集合。Iterable 接口定义了以下主要方法:
- iterator():返回一个 Iterator 对象,用于遍历集合元素。
Iterable 接口的实现类只需要实现 iterator() 方法,就可以提供遍历集合元素的功能。以下是使用 Iterable 接口遍历集合的示例代码:
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
list.add("!");
for (String element : list) {
System.out.println(element);
}
Iterator 和 Iterable 的区别
Iterator 和 Iterable 是 Java 集合框架中用于遍历集合的两个重要接口,它们的主要区别在于:
- Iterator 是一个具体类,它提供了多种方法来遍历集合元素,而 Iterable 只是一个接口,它只提供了一个 iterator() 方法,用于返回一个 Iterator 对象。
- Iterator 可以直接用于遍历集合元素,而 Iterable 需要先调用 iterator() 方法来获取一个 Iterator 对象,然后再使用 Iterator 对象来遍历集合元素。
- Iterator 可以在遍历集合元素的同时删除元素,而 Iterable 不能直接删除元素,需要通过 Iterator 对象来删除元素。
总结
Iterator 和 Iterable 是 Java 集合框架中用于遍历集合的两个重要接口,它们为集合提供了统一的遍历方式。Iterator 接口提供了多种方法来遍历集合元素,并且可以在遍历集合元素的同时删除元素。Iterable 接口只需要实现一个 iterator() 方法,用于返回一个 Iterator 对象,然后再使用 Iterator 对象来遍历集合元素。