1. gzyueqian
      13352868059

      Java培訓(xùn):在Java 8及更高版本中使用Java流

      更新時間: 2022-08-18 09:37:47來源: 粵嵌教育瀏覽量:9824

        Java8已經(jīng)發(fā)布了八年多,但2014年發(fā)布的許多特性都延續(xù)到了2022年。其中最突出的是Java流。在這篇文章中,我們解釋了什么是Java流,解釋了何時使用它們。并簡要介紹了常見的Java流操作。對java感興趣的同學(xué)可以參加java培訓(xùn),你可以學(xué)會更多的java新技術(shù)。

        Java中的流是什么?

        Java流支持對元素流的函數(shù)式操作。流是以某種順序應(yīng)用于數(shù)據(jù)的不可變函數(shù)集合的抽象。流不是可以存儲元素的集合。

        流和結(jié)構(gòu)之間最重要的區(qū)別是流不保存數(shù)據(jù)。例如,你不能指向流中某個元素存在的位置。你只能指定對該數(shù)據(jù)進行操作的函數(shù)。并且在流上執(zhí)行操作時,會影響原流。

        注意,這個文章中的流不要與Java I/O包中的流混淆,如InputStream、OutputStream等。

        何時使用Java流

        Java流代表了數(shù)據(jù)流動的管道和對數(shù)據(jù)進行操作的函數(shù)。在這種情況下,管道由一個流源、零個或多個中間操作以及一個終端操作組成。因此,流可以用在任何涉及數(shù)據(jù)驅(qū)動函數(shù)的應(yīng)用程序中。想要學(xué)習(xí)java更多知識和技能,可以考慮參加java培訓(xùn),有經(jīng)驗豐富的專業(yè)講師指導(dǎo)教學(xué),有緊跟市場需求的實時課程,可以讓你快速掌握這門技術(shù),節(jié)約時間,少走彎路。

        在下面的例子中,Java流被用作一個奇特的迭代器:

        

        在這個例子中,我們只選擇偶數(shù)值,通過使用過濾器方法,并將它們增加了一倍繪圖使輸入加倍的函數(shù)。這給我們提供了什么?streams API為我們提供了在各個步驟中指定數(shù)據(jù)操作序列的能力。我們不指定任何條件處理代碼,我們不想編寫大型復(fù)雜函數(shù),我們不關(guān)心數(shù)據(jù)流。

        事實上,我們一次只為一個數(shù)據(jù)處理步驟而煩惱:我們通過streams框架的能力自己組合函數(shù)和通過函數(shù)的數(shù)據(jù)流。上面的例子顯示了你最終將在流中使用的最重要的模式之一:

        將集合提升到流。

        騎流:過濾值,轉(zhuǎn)換值,限制輸出。

        組成小的個體操作。

        將結(jié)果收集回具體的集合中。

        流中的常見操作

        在Java 8及更高版本中,你可以通過調(diào)用stream()方法輕松地從任何集合中獲取流。之后,還有幾個你會經(jīng)常遇到的基本函數(shù)。在java培訓(xùn)中,也有關(guān)于java工具的學(xué)習(xí),理論知識+實踐項目,雙管齊下,學(xué)以致用,讓你深入淺出地學(xué)習(xí)java。

        

        以下是Java流中的一些常見操作:

        過濾器:返回一個新流,其中包含原始流的一些元素。它接受謂詞來計算應(yīng)該在新流中返回哪些元素,并刪除其余的元素。在命令式代碼中,我們會使用條件邏輯來指定應(yīng)該發(fā)生什么如果一個元素滿足條件。在功能性的風(fēng)格中,我們不用費心可安裝文件系統(tǒng),我們過濾流,只處理我們需要的值。

        地圖:將流元素轉(zhuǎn)換成其他東西,它接受一個應(yīng)用于流中每個元素的函數(shù),并返回參數(shù)函數(shù)產(chǎn)生的值的流。這是Java流API的基礎(chǔ)。Map允許你對流中的數(shù)據(jù)執(zhí)行計算。

        減少:(有時也稱為折疊)將流簡化為單個元素。如果你想要對流中的所有整數(shù)值求和,你需要使用reduce函數(shù)。如果你想在流中找到最大值,reduce就是你的朋友。想對java有更深入的了解,可以參加java培訓(xùn),在專業(yè)老師的指導(dǎo)下,你可以很快掌握java的更多特性。

        收集:這是走出流世界并獲得具體的值集合的方法,就像上面例子中的列表一樣。

        你不會在每次遇到流時都使用所有這些函數(shù),但是你可以隨意使用它們。

        關(guān)于Java Streams API的最終想法

        并行運行每個流操作存在缺陷,大多數(shù)streams實現(xiàn)使用默認的ForkJoinPool在后臺執(zhí)行操作。因此,你可以很容易地使特定的流處理稍微快一點,但是卻犧牲了整個JVM的性能,甚至沒有意識到這一點。

        使用函數(shù)式編程解決問題需要不同的思維方式。但是通過一點試驗,你就能掌握它的竅門。

        通常,你可能很難找到一個實用的解決方案,但是一旦你得到了,你就會意識到它并不特別復(fù)雜。然后下一次解決類似的問題就容易多了。參加java培訓(xùn),培訓(xùn)課程不僅注重理論,更注重項目的實戰(zhàn)能力,能夠讓你快速適應(yīng)企業(yè)開發(fā)的進度,成為企業(yè)所需要的Java人才。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲v天堂v手机在线 | 制服丝袜国产激情在线 | 日韩精品免费视频一区二区三区 | 一区二区三区中文字幕 | 一区二区日韩激情综合网 | 新97碰碰新版国产 |