Java 中的 Iterable 接口是什么?

javaobject oriented programmingprogramming更新于 2024/8/5 3:56:00

简而言之,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() 在开发人员中最为流行。


相关文章