Java Iterable接口是什么

Java Iterable接口是什么

简单来说,可迭代接口是一种允许我们遍历对象集合的共同接口。它首次在JDK 1.5发布时引入,并在’java.lang’包中提供。Java集合框架扩展了这个接口,因此默认情况下,此集合框架中的所有类都实现了可迭代接口。换句话说,集合框架的类,如ArrayList、TreeSet、TreeMap和HashMap都是可迭代的。本文旨在解释Java的可迭代接口及其用例。

Java中的可迭代接口

可迭代接口唯一的用例是允许遍历集合类的元素,以便我们可以访问这些元素。实现可迭代接口的一种方法是重写’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()’方法通过ArrayList进行循环迭代,并使用’next()’方法打印元素。

import java.util.*;
public class ArrayObj {
   public static void main(String[] args) {
      // Creating arraylist 
      ArrayList<Integer> araylist = new ArrayList<>();
      // Adding elements in arraylist
      araylist.add(1);
      araylist.add(2);
      araylist.add(1);
      araylist.add(0);
      araylist.add(9);
      araylist.add(6);
      System.out.println("Elements of the list: ");
      // creating an iterator
      Iterator<Integer> iterate = araylist.iterator();
      // while loop to iterate through elements
      while (iterate.hasNext()) { // checking next element
         // printing the current element
         System.out.println(iterate.next()); 
      }
   }
}

输出

Elements of the list: 
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) {
      // Creating arraylist 
      ArrayList<Integer> araylist = new ArrayList<>();
      // Adding elements in arraylist
      araylist.add(1);
      araylist.add(2);
      araylist.add(1);
      araylist.add(0);
      araylist.add(9);
      araylist.add(6);
      System.out.println("Elements of the list: ");
      // for-each loop to iterate through elements
      for (Integer print : araylist) {
         // printing the elements
         System.out.println(print);
      }
   }
}

输出

Elements of the list: 
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) {
      // Creating arraylist 
      ArrayList<Integer> araylist = new ArrayList<>();
      // Adding elements in arraylist
      araylist.add(1);
      araylist.add(2);
      araylist.add(1);
      araylist.add(0);
      araylist.add(9);
      araylist.add(6);
      System.out.println("Elements of the list: ");
      // forEach to iterate through elements
      araylist.forEach(newArraylist ->
         // printing the elements
         System.out.println(newArraylist));
   }
}

输出

Elements of the list: 
1
2
1
0
9
6

结论

我们通过定义Iterable接口开始本文,接下来的部分中我们详细讨论了它。我们看到在可迭代对象上有三种遍历的方式:iterator()、for-each循环和forEach()。在这些方式中,iterator()是开发人员中最受欢迎的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程