日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用JShell的Java 9 Streams API

發布時間:2023/12/3 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用JShell的Java 9 Streams API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章著眼于使用JShell的Java 9 Streams API。 Streams API的更改以Java 8中Streams的成功為基礎,并引入了許多實用程序方法– takeWhile,dropWhile和iterate。 這篇文章延續了My Top Java 9功能,并使用Jshell探索了這些方法。

流API

Streams API和Lambda是Java 8最成功的功能,而Java 9的更改基于Java 8的一些新實用程序方法

jshell> Stream.of(1,2,3,4,5).takeWhile(p->p<3).forEach(System.out::print); 12

現在讓我們返回所有大于3的值,并且我們看到該謂詞立即返回false并且沒有得到任何返回

jshell> Stream.of(1,2,3,4,5).takeWhile(p -> p > 3).forEach(System.out::print);jshell>
  • 無序列表–直到謂詞失敗的最長值列表,盡管下游可能存在滿足謂詞的值,但不會返回這些值

我們可以在下面看到,即使最后一個元素為1,列表也只返回2,而有序列表將返回1和2 –

jshell> Stream.of(2,3,6,5,1).takeWhile(p -> p < 3).forEach(System.out::print); 2

dropWhile提供與takeWhile相反的行為,因此在謂詞為true時刪除記錄。 和以前一樣,我們對排序和未排序列表也有類似的考慮。

  • 有序列表–將返回最長的記錄列表,但不包括那些滿足謂詞的元素
jshell> Stream.of(1,2,3,4,5).dropWhile(p -> p < 3).forEach(System.out::print); 345
  • 無序列表–將刪除滿足謂詞的第一條記錄–
jshell> Stream.of(2,3,6,5,1).dropWhile(p -> p < 3).forEach(System.out::print); 3651jshell> Stream.of(1,2,3,5,6).dropWhile(p -> p < 3).forEach(System.out::print); 365

dropWhile / takeWhile結論

結論是,除非使用代碼可接受的副作用,否則在處理無序列表時需要格外小心。 盡管我無法想到可以接受無序列表的隨機元素的用例,但我確信其中存在一些。

這以類似于for循環的方式運行。 取一個起始值(T種子),退出條件(謂詞)
hasNext)以及是否具有下一個值(謂詞)
hasNext)

迭代方法附加了退出條件–

jshell> Stream.iterate(1, i -> i < 6, i -> i + 1).forEach(System.out::println); 1 2 3 4 5

結論

dropWhile和takeWhile為Java Streams API提供了一些有用的實用程序方法。 主要含義是流是有序還是無序。 Stream.iterate方法允許我們在Stream內部具有for循環功能。 我期待聽到人們使用這些新方法的經驗。

翻譯自: https://www.javacodegeeks.com/2017/11/java-9-streams-api-using-jshell.html

總結

以上是生活随笔為你收集整理的使用JShell的Java 9 Streams API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。