如何在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

更新於:2020年4月23日

251 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告