Java Stream forEach()方法及示例
Stream forEach(Consumer action) 为流中的每个元素执行一个动作。Stream forEach(Consumer action)是一个 终端操作 ,即它可以遍历流,产生一个结果或一个副作用。
语法:
void forEach(Consumer < ? super T> action)
其中,Consumer是一个功能接口和T是流元素的类型。
注意: 这个操作的行为是明确的非确定性的。此外,对于任何给定的元素,该操作可以在库选择的任何时间和任何线程中执行。
例子1: 对反向排序的流的每个元素进行打印操作。
// Java code for forEach
// (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(2, 4, 6, 8, 10);
// Using forEach(Consumer action) to
// print the elements of stream
// in reverse order
list.stream().sorted(Comparator.reverseOrder()).forEach(System.out::println);
}
}
输出:
10
8
6
4
2
例2: 对字符串流的每个元素进行打印操作。
// Java code for forEach
// (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 forEach(Consumer action) to
// print the elements of stream
list.stream().forEach(System.out::println);
}
}
输出:
GFG
Geeks
for
GeeksforGeeks
例3: 对反向排序的字符串流的每个元素进行打印操作。
// Java code for forEach
// (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 forEach(Consumer action) to print
// Character at index 1 in reverse order
stream.sorted(Comparator.reverseOrder())
.flatMap(str -> Stream.of(str.charAt(1)))
.forEach(System.out::println);
}
}
输出:
o
e
e
F