stream流对象的理解及使用
生活随笔
收集整理的這篇文章主要介紹了
stream流对象的理解及使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我的理解:用stream流式處理數(shù)據(jù),將數(shù)據(jù)用一個一個方法去 . (點,即調用) 得到新的數(shù)據(jù)結果,可以一步達成。
有多種方式生成 Stream Source:
-
從 Collection 和數(shù)組
-
- Collection.stream()
- Collection.parallelStream()
- Arrays.stream(T array) or Stream.of()
從 BufferedReader
- java.io.BufferedReader.lines()
-
靜態(tài)工廠
-
java.util.stream.IntStream.range()
-
java.nio.file.Files.walk()
-
自己構建
-
- java.util.Spliterator
其它
- Random.ints()
- BitSet.stream()
- Pattern.splitAsStream(java.lang.CharSequence)
- JarFile.stream()
用法(以下講解常用的幾個):::
? filter
filter 對原始 Stream 進行某項測試,通過測試的元素被留下來生成一個新 Stream。
? forEach
forEach 方法接收一個 Lambda 表達式,然后在 Stream 的每一個元素上執(zhí)行該表達式。
? findFirst
這是一個 termimal 兼 short-circuiting 操作,它總是返回 Stream 的第一個元素,或者空。
這里比較重點的是它的返回值類型:Optional。這也是一個模仿 Scala 語言中的概念,作為一個容器,它可能含有某值,或者不包含。使用它的目的是盡可能避免 NullPointerException。
總結
以上是生活随笔為你收集整理的stream流对象的理解及使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: form表单提交前进行ajax或js验证
- 下一篇: 十大算法,描述+代码+演示+分析+改进(