您好,登錄后才能下訂單哦!
這篇文章給大家介紹Java8流是什么呢,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在說流之前,我們先來看看集合,為什么呢?作為Java8中的新成員,它和集合有很多相似之處,同時它們也是可以互相轉化的。集合不僅僅是Java語言,任何一門高級開發語言都有集合的概念,集合顧名思義,就是很多數據集放在一起,它算是一個容器,同時我們也可以使用泛型來限制集合中的數據類型。
流作為是Java8的新成員,它允許我們以聲明性的方式來處理數據集合。我們可以把它看成遍歷數據集的高級迭代器。此外,流還可以透明地并行處理,這就使得我們無需編寫任何多線程代碼。在后續中我們再來詳細說說流和流的并行化。
從以上一段代碼中,我們可以看出:
1、代碼是以聲明性方式編寫。即想要完成的工作,而非如何完成。
2、可以使用操作鏈。filter之后的方法可以直接點,直到完成。
由上,我們可以先簡單的總結下使用流的好處:
1、聲明性:更簡潔易讀。
2、可復用:更加靈活。
3、可并行:性能更好。
上面我看了流和集合的簡單比較,那么到底流是什么呢?我們可以簡單說明為“從支持數據處理操作的源生成的元素序列”。我們將這句話分開來解析:
①、元素序列:它就如何集合一樣,可以訪問特定元素類型的一組有序值。但它與集合是不同的,集合是一種數據結構,它的主要目的是在一定時間和空間上存儲數據。而流主要用來計算。他們本質上是不同的。
②、源:即源頭,流在處理數據時,這個數據的源頭,例如:集合可以是個源,文件也可以是個源。
③、數據處理操作:流在處理數據時類似我們操作數據庫,如:filter/map/sort等。流在處理數據時,可順序執行也可并行執行。
流在操作中具有兩個很明顯的特征:
1、流水線。即流的操作返回的還是一個流,如此多個操作就可以一直往后鏈接,從而形成一個流水線。
2、內部迭代。流在處理時,我們是看不到處理過程的,它是在背后執行的。我們可以回看上一節中,民警在篩選/排序/映射到后面的截取/轉換等如何完成的,我們無法看到執行過程。
在Java8中集合和流是可以互相轉化的,但從數據上來看,集合是可以不斷的遍歷,而流只可以遍歷一次,一次遍歷結束后,即代表該條流完成,若想再次處理,則需要重新建立一個流對象。若我們對一個已經完成的流再次處理,則會拋出異常。
關于Java8流是什么呢就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。