Java 中的 Iterable 接口是什么?
简而言之,iterable 接口是一个通用接口,允许我们迭代对象集合。它首次在 JDK 1.5 版本中引入,并在"java.lang"包中提供。Java 集合框架扩展了此接口,因此默认情况下,此集合框架中可用的所有类都实现了 iterable 接口。换句话说,集合框架的类(例如 ArrayList、TreeSet、TreeMap 和 HashMap)都是可迭代的。本文旨在解释 Java 的 iterable 接口及其用例。
Java 中的 Iterable 接口
Iterable 接口展示的唯一用例是它允许迭代集合类的元素,以便我们可以访问这些元素。实现 Iterable 接口的一种方法是重写"iterator()"方法并提供 Iterator 接口的具体实现。这里,'iterator()' 方法是 Iterable 接口的抽象方法。其他方法将在本文后面讨论。但在继续之前,让我们先讨论几个重要的语法。
Iterable 接口的一般语法
public interface Iterable<TypeOfElement> { }
Iterator() 的一般语法
Iterator<TypeOfCollection> instanceOfIterator = nameOfCollection.iterator();
Iterator 接口提供以下方法
hasNext() − 如果有更多元素需要迭代,则返回 true。
next() − 如果 hasNext() 返回 true,则返回迭代中的下一个元素。
remove() − 从集合中删除当前元素。
示例
以下示例说明了 Iterable 接口的 iterator() 方法的使用。
方法
首先,导入"java.util"包,以便我们可以访问 ArrayList 类。
然后,创建 ArrayList 类的实例,并使用内置方法"add()"。
接下来,创建一个迭代器。
最后,使用"hasNext()"方法进行while循环遍历ArrayList,并使用"next()"方法打印元素。
import java.util.*; public class ArrayObj { public static void main(String[] args) { // 创建数组列表 ArrayList<Integer> araylist = new ArrayList<>(); // 在数组列表中添加元素 araylist.add(1); araylist.add(2); araylist.add(1); araylist.add(0); araylist.add(9); araylist.add(6); System.out.println("列表元素:"); // 创建迭代器 Iterator<Integer> iterate = araylist.iterator(); // while 循环迭代元素 while (iterate.hasNext()) { // 检查下一个元素 // 打印当前元素 System.out.println(iterate.next()); } } }
输出
列表元素: 1 2 1 0 9 6
迭代可迭代对象的其他方法如下 -
使用 for-each 循环
使用 forEach()
让我们逐一讨论。
使用 for-each 循环
如果我们使用增强 for 循环(也称为 for-each 循环),那么我们只能访问指定集合的元素。它不提供删除元素的功能。
示例
在此示例中,我们将使用 for-each 循环,而不是像上一个示例中那样使用 iterator() 方法。
import java.util.*; public class ArrayObj { public static void main(String[] args) { // 创建数组列表 ArrayList<Integer> araylist = new ArrayList<>(); // 在数组列表中添加元素 araylist.add(1); araylist.add(2); araylist.add(1); araylist.add(0); araylist.add(9); araylist.add(6); System.out.println("列表元素:"); // for-each 循环遍历元素 for (Integer print : araylist) { // 打印元素 System.out.println(print); } } }
输出
列表元素: 1 2 1 0 9 6
使用 forEach()
它是 Iterable 接口的默认方法,使用 lambda 表达式显示结果。lambda 表达式接受单个输入,执行指定的操作并且不返回任何内容。它是迭代集合对象的有效方法之一。
示例
在此示例中,我们将使用 forEach() 代替 iterator() 方法和 for-each 循环来获取所需的结果。
import java.util.*; public class ArrayObj { public static void main(String[] args) { // 创建数组列表 ArrayList<Integer> araylist = new ArrayList<>(); // 在数组列表中添加元素 araylist.add(1); araylist.add(2); araylist.add(1); araylist.add(0); araylist.add(9); araylist.add(6); System.out.println("列表元素:"); // forEach 遍历元素 araylist.forEach(newArraylist -> // 打印元素 System.out.println(newArraylist)); } }
输出
列表元素: 1 2 1 0 9 6
结论
我们从定义 Iterable 接口开始本文,并在下一节中详细讨论了它。我们已经看到,迭代可迭代对象共有三种方法:iterator()、for-each 循环和 forEach()。在这些方法中,iterator() 在开发人员中最为流行。