javascript
java streams_使用JShell的Java 9 Streams API
java streams
這篇文章著眼于使用JShell的Java 9 Streams API。 Streams API的更改以Java 8中Streams的成功為基礎(chǔ),并引入了許多實(shí)用程序方法– takeWhile,dropWhile和iterate。 這篇文章延續(xù)了My Top Java 9功能,并使用Jshell探索了這些方法。
流API
Streams API和Lambda是Java 8最成功的功能,而Java 9的更改基于Java 8的一些新實(shí)用程序方法
jshell> Stream.of(1,2,3,4,5).takeWhile(p->p<3).forEach(System.out::print); 12現(xiàn)在讓我們返回所有大于3的值,并且我們看到謂詞立即返回false,并且沒有任何返回值
jshell> Stream.of(1,2,3,4,5).takeWhile(p -> p > 3).forEach(System.out::print);jshell>- 無序列表–直到謂詞失敗的最長值列表,盡管下游可能存在滿足謂詞的值,但這些值不會(huì)返回
我們可以在下面看到,即使最后一個(gè)元素為1,列表也只返回2,而有序列表將返回1和2 –
jshell> Stream.of(2,3,6,5,1).takeWhile(p -> p < 3).forEach(System.out::print); 2dropWhile提供與takeWhile相反的行為,因此在謂詞為true時(shí)刪除記錄。 和以前一樣,我們對(duì)排序和未排序列表也有類似的考慮。
- 有序列表–將返回最長的記錄列表,不包括滿足謂詞的那些元素
- 無序列表–將刪除滿足謂詞的第一條記錄–
dropWhile / takeWhile結(jié)論
結(jié)論是,除非有副作用在代碼中是可接受的,否則在處理無序列表時(shí)需要注意。 盡管我無法想到一個(gè)可以接受無序列表的隨機(jī)元素的用例,但是我確信其中存在一些。
這以類似于for循環(huán)的方式運(yùn)行。 取一個(gè)起始值(T種子),退出條件(謂詞)
hasNext)以及是否具有下一個(gè)值(謂詞)
hasNext)
迭代方法附加了退出條件–
jshell> Stream.iterate(1, i -> i < 6, i -> i + 1).forEach(System.out::println); 1 2 3 4 5結(jié)論
dropWhile和takeWhile為Java Streams API提供了一些有用的實(shí)用程序方法。 主要含義是您的流是有序的還是無序的。 Stream.iterate方法允許我們?cè)赟tream內(nèi)部具有for循環(huán)功能。 我期待聽到人們使用這些新方法的經(jīng)驗(yàn)。
翻譯自: https://www.javacodegeeks.com/2017/11/java-9-streams-api-using-jshell.html
java streams
總結(jié)
以上是生活随笔為你收集整理的java streams_使用JShell的Java 9 Streams API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YouTube 计划取消无广告的 Pre
- 下一篇: 报告称苹果 iPhone 15 系列面板