- Java核心技術·卷Ⅱ:高級特性(原書第10版)
- (美)凱S.霍斯特曼
- 494字
- 2020-10-30 18:10:33
1.5 其他的流轉換
distinct方法會返回一個流,它的元素是從原有流中產生的,即原來的元素按照同樣的順序剔除重復元素后產生的。這個流顯然能夠記住它已經看到過的元素。

對于流的排序,有多種sorted方法的變體可用。其中一種用于操作Comparable元素的流,而另一種可以接受一個Comparator。下面,我們對字符串排序,使得最長的字符串排在最前面:

與所有的流轉換一樣,sorted方法會產生一個新的流,它的元素是原有流中按照順序排列的元素。
當然,我們在對集合排序時可以不使用流。但是,當排序處理是流管道的一部分時,sorted方法就會顯得很有用。
最后,peek方法會產生另一個流,它的元素與原來流中的元素相同,但是在每次獲取一個元素時,都會調用一個函數。這對于調試來說很方便:

當實際訪問一個元素時,就會打印出來一條消息。通過這種方式,你可以驗證iterate返回的無限流是被惰性處理的。
對于調試,你可以讓peek調用一個你設置了斷點的方法。
java.util.stream.Stream 8
·Stream<T>distinct()
產生一個流,包含當前流中所有不同的元素。
·Stream<T>sorted()
·Stream<T>sorted(Comparator<?super T>comparator)
產生一個流,它的元素是當前流中的所有元素按照順序排列的。第一個方法要求元素是實現了Comparable的類的實例。
·Stream<T>peek(Consumer<?super T>action)
產生一個流,它與當前流中的元素相同,在獲取其中每個元素時,會將其傳遞給action。
推薦閱讀
- 高效微控制器C語言編程
- TypeScript圖形渲染實戰:基于WebGL的3D架構與實現
- Microsoft System Center Orchestrator 2012 R2 Essentials
- Serverless架構
- Python算法從菜鳥到達人
- AIRIOT物聯網平臺開發框架應用與實戰
- HoloLens與混合現實開發
- Java EE 7 with GlassFish 4 Application Server
- UML軟件建模
- Visual Basic程序設計實驗指導及考試指南
- Mobile Forensics:Advanced Investigative Strategies
- C語言程序設計
- Java Web入門很輕松(微課超值版)
- 現代JavaScript編程:經典范例與實踐技巧
- 人件集:人性化的軟件開發