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()是开发人员中最受欢迎的。