JShell 是Java 9中引入的工具,它接受简单的语句(如表达式,变量,方法,类等)作为输入并产生立即结果。
甲流 是值的序列。一个中间流操作是,需要一个流的操作。例如,可以将其应用于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 200jshell> 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 40jshell> numbers.stream().distinct().sorted().forEach(elem -> System.out.println(elem)); 3 5 9 40 54 280jshell> numbers.stream().distinct().map(num -> num * num).forEach(elem -> System.out.println(elem)); 9 25 2916 78400 81 1600