可迭代JDK 1.5 中引入了接口。它属于java.lang包。一般来说,实现 Iterable 的对象允许它被迭代。可迭代接口允许对象成为增强的for循环(for-each 循环)。
可迭代的定义
public interface Iterable<T> { Iterator<T> iterator(); Spliterator<T> spliterator(); void forEach(Consumer<? super T> action); }
这里,T是迭代器返回的元素的类型。
迭代的方式
Iterable 对象可以通过三种方式进行迭代。
- 使用enhanced for loop(for-each循环)
- 使用 Iterable forEach 循环
- 使用迭代器<T>接口
使用增强的 for 循环迭代 Iterable
实现 Collection 接口的类的对象可以使用 for-each 循环进行迭代,Collection 接口扩展了 Iterable 接口。
Java
// Java Program to demonstrate iterate
// an iterable using for-each loop
import java.io.*;
import java.util.*;
class IterateUsingEnhancedForLoop {
public static void main (String[] args) {
// create a list
List<String> list = new ArrayList<String>();
// add elements
list.add("Geeks");
list.add("for");
list.add("Geeks");
// Iterate through the list
for( String element : list ){
System.out.println( element );
}
}
}
输出
Geeks for Geeks
使用 forEach 循环迭代 Iterable
Iterable forEach()方法采用拉姆达表达式作为参数。集合中的每个元素都会调用此 Lambda 表达式。在下面的示例中,对于每个元素对于列表,该函数将元素打印到控制台。
Java
// Java Program to demonstrate iterate
// an Iterable using forEach method
import java.io.*;
import java.util.*;
class IterateUsingforEach {
public static void main(String[] args)
{
// create a list
List<String> list = new ArrayList<>();
// add elements to the list
list.add("Geeks");
list.add("for");
list.add("Geeks");
// Iterate through the list
list.forEach(
(element) -> { System.out.println(element); });
}
}
输出
Geeks for Geeks
使用 Iterator 迭代 Iterable
我们可以通过使用 iterator() 方法从中获取 Iterator 来迭代 Java Iterable 的元素。
使用 Iterator 遍历集合来执行操作时使用的方法是:
- hasNext():如果到达集合末尾,则返回 false,否则返回 true。
- next():返回集合中的下一个元素。
- remove():从集合中删除迭代器返回的最后一个元素。
- forEachRemaining():按顺序对集合中的每个剩余元素执行给定操作。
Java
// Java Program to demonstrate iterate
// an Iterable using an Iterator
import java.io.*;
import java.util.*;
class IterateUsingIterator {
public static void main(String[] args)
{
List<String> list = new ArrayList<>();
list.add("Geeks");
list.add("for");
list.add("Geeks");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
输出
Geeks for Geeks
可迭代的方法
METHOD |
DESCRIPTION |
---|---|
Iterable forEach() | 对 Iterable 的每个元素执行给定的操作,直到处理完所有元素或该操作引发异常。 |
iterator() | 返回 T 类型元素的迭代器。 |
spliterator() | 在此 Iterable 说明的元素上创建 Spliterator。 |
必读
参考:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Iterable.html
相关用法
- Java Iterable forEach()用法及代码示例
- Java Iterable转Collection用法及代码示例
- Java Iterable转Stream用法及代码示例
- Java Iterator转Spliterator用法及代码示例
- Java Iterator转Stream用法及代码示例
- Java Iterator转List用法及代码示例
- Java Iterator转Iterable用法及代码示例
- Java Iterator用法及代码示例
- Java Iterator和Enumeration的区别用法及代码示例
- Java Iterator和Spliterator的区别用法及代码示例
- Java Integer divideUnsigned()用法及代码示例
- Java Integer equals()用法及代码示例
- Java Integer getInteger()用法及代码示例
- Java Integer longValue()用法及代码示例
- Java Integer max()用法及代码示例
- Java Integer min()用法及代码示例
- Java Integer numberOfLeadingZeros()用法及代码示例
- Java Integer numberOfTrailingZeros()用法及代码示例
- Java Integer parseInt()用法及代码示例
- Java Integer parseUnsignedInt()用法及代码示例
- Java Integer remainderUnsigned()用法及代码示例
- Java Integer reverseBytes(int i)用法及代码示例
- Java Integer toBinaryString()用法及代码示例
- Java Integer toHexString()用法及代码示例
- Java Integer toUnsignedLong()用法及代码示例
注:本文由纯净天空筛选整理自Ganeshchowdharysadanala大神的英文原创作品 Iterable Interface in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。