Java Stream forEachOrdered()方法及示例
Stream forEachOrdered(Consumer action) 对该流的每个元素执行一个动作,如果该流有定义的相遇顺序,则按照该流的相遇顺序执行。Stream forEachOrdered(Consumer action)是一个 终端操作 ,也就是说,它可以遍历流,产生一个结果或副作用。
语法:
void forEachOrdered(Consumer <? super T> action)
其中,消费者是一个功能接口,它 预计将通过副作用进行操作,而T 是流元素的类型。
注意: 这个操作一次处理一个元素,如果有的话,按相遇的顺序。对一个元素进行操作后,再对后面的元素进行操作。
例1: 按原始顺序打印整数数组的元素。
// Java code for forEachOrdered
// (Consumer action) in Java 8
import java.util.*;
class GFG {
// Driver code
public static void main(String[] args) {
// Creating a list of Integers
List<Integer> list = Arrays.asList(10, 19, 20, 1, 2);
// Using forEachOrdered(Consumer action) to
// print the elements of stream in encounter order
list.stream().forEachOrdered(System.out::println);
}
}
输出:
10
19
20
1
2
例2: 按原始顺序打印字符串数组的元素。
// Java code for forEachOrdered
// (Consumer action) in Java 8
import java.util.*;
class GFG {
// Driver code
public static void main(String[] args) {
// Creating a list of Strings
List<String> list = Arrays.asList("GFG", "Geeks",
"for", "GeeksforGeeks");
// Using forEachOrdered(Consumer action) to
// print the elements of stream in encounter order
list.stream().forEachOrdered(System.out::println);
}
}
输出:
GFG
Geeks
for
GeeksforGeeks
例3: 按原始顺序打印字符串数组中索引2的字符。
// Java code for forEachOrdered
// (Consumer action) in Java 8
import java.util.*;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args) {
// Creating a Stream of Strings
Stream<String> stream = Stream.of("GFG", "Geeks",
"for", "GeeksforGeeks");
// Using forEachOrdered(Consumer action)
stream.flatMap(str-> Stream.of(str.charAt(2)))
.forEachOrdered(System.out::println);
}
}
输出:
G
e
r
e