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