如何在Java 9的JShell中使用中间流操作?
JShell 是在Java 9中引入的一个工具,它接受简单的语句,例如表达式、变量、方法、类等作为输入,并立即产生结果。
流 (Stream) 是值的序列。中间流操作 是一种对流进行操作的操作。例如,它可以应用于lambda表达式,并生成另一个元素流作为结果。
下面列出了最流行的中间流操作
- 1) sorted(): 此方法保留消耗流的元素作为结果,但也会将它们按自然排序顺序排列。
- 2) distinct(): 此方法返回一个流,其中只保留输入流中唯一的元素,并且可以保持保留元素的相对顺序。
- 3) filter(): 此方法可以用于根据某些逻辑过滤流元素。
- 4) map(): 此方法应用lambda表达式来根据输入流元素计算新的结果。然后,它返回这些结果的流作为输出。
在下面的代码片段中,我们可以在JShell工具中实现不同的中间流操作。
代码片段
jshell> List<Integer> numbers = List.of(3, 10, 23, 200, 77, 9, 32); numbers ==> [3, 10, 23, 200, 77, 9, 32] jshell> numbers.stream().sorted().forEach(elem -> System.out.println(elem)); 3 9 10 23 32 77 200 jshell> List<Integer> numbers = List.of(3, 5, 54, 280, 5, 9, 40); numbers ==> [3, 5, 54, 280, 5, 9, 40] jshell> numbers.stream().distinct().forEach(elem -> System.out.println(elem)); 3 5 54 280 9 40 jshell> numbers.stream().distinct().sorted().forEach(elem -> System.out.println(elem)); 3 5 9 40 54 280 jshell> numbers.stream().distinct().map(num -> num * num).forEach(elem -> System.out.println(elem)); 9 25 2916 78400 81 1600
广告