欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Stream流中map和forEach的區(qū)別詳解

 更新時間:2022年04月18日 10:11:16   作者:Haoo_是個程序員  
本文主要介紹了Java中Stream流中map和forEach的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

不是很難的知識,但是今天犯錯了,記錄一下

什么是 stream 流

我們在使用集合或數(shù)組對元素進(jìn)行操作時往往會遇到這種情況:通過對不同類型的存儲元素,按照特定條件進(jìn)行查找、排序、等操作時往往會寫一大段代碼,而且更要命的是,不同類型的數(shù)據(jù),操作的方法也不一樣,比如一個存儲 Student 實體類和一個只存儲 String 類型的集合倆者的操作步驟肯定大不一樣且無法通用,而 stream API 就解決了這些問題,對數(shù)據(jù)操作時進(jìn)行了統(tǒng)一的處理。

可以這樣理解,stream API 把集合或數(shù)組里面的數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一格式,在通過指定的方法,對里面的元素進(jìn)行操作,之后將操作過后的的數(shù)據(jù)按照流的格式返回。這樣做的好處就是我們不必再關(guān)心我們操作的數(shù)據(jù)是什么類型,只需要統(tǒng)一轉(zhuǎn)換成 stearm 流進(jìn)行統(tǒng)一操作,大大簡化了我們開發(fā)時的過程。

Map

Map 方法接收一個功能型接口,功能型接口接收一個參數(shù)(  Function<T, R> 接口),有返回值,返回的是一個新流,可以對這個流進(jìn)一步操作(即中間操作

Map()是1對1的映射,只是起到映射作用,不會對原來的list中的元素做出任何改變。map方法調(diào)用完之后,如果需要得到一個list類型的結(jié)果,必須有.collect(Collectors.toList()) 

forEach

forEach 接收一個 Consumer 接口,沒有返回值

forEach() 是遍歷list中的所有元素并做處理,會改變原來的list中的元素。

即使看不懂這倆個方法定義,但你也肯定能知道 forEach 返回的 void, 而 map 返回的 Stream 類型,接下來再看這個例子??

// 定義一個 Integer 類型的集合
List<Integer> numbers = Arrays.asList( 2, 3, 7,  5);
// 獲取對應(yīng)的平方數(shù)
numbers.stream().map(x-> x*x).forEach(System.out::println);
//結(jié)果: 4 9 49 25

由此可以得到結(jié)論: map 是將 number 中的每個元素進(jìn)行取值之后進(jìn)行操作,再將操作過后的每個結(jié)果返回到 number 中去,而 forEach 是單純的得到 number 集合中的值但并不能對其中里面的值進(jìn)行操作

使用場景

當(dāng)只是使用一下list中的元素的時候,用map;

當(dāng)需要改變list中的元素值的時候,用forEach

到此這篇關(guān)于Java中Stream流中map和forEach的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Stream流中map和forEach內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java針對電話號碼正則匹配實例

    java針對電話號碼正則匹配實例

    這篇文章主要介紹了java針對電話號碼正則匹配的方法,涉及java正則匹配與字符串操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • spring cloud gateway 全局過濾器的實現(xiàn)

    spring cloud gateway 全局過濾器的實現(xiàn)

    全局過濾器作用于所有的路由,不需要單獨配置,我們可以用它來實現(xiàn)很多統(tǒng)一化處理的業(yè)務(wù)需求,這篇文章主要介紹了spring cloud gateway 全局過濾器的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Spring Cloud與分布式系統(tǒng)簡析

    Spring Cloud與分布式系統(tǒng)簡析

    這篇文章主要介紹了Spring Cloud與分布式系統(tǒng)的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • IDEA2023 配置使用Docker的詳細(xì)教程

    IDEA2023 配置使用Docker的詳細(xì)教程

    這篇文章主要介紹了IDEA2023 配置使用Docker的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • java JTree JCheckBox樹復(fù)選框詳解

    java JTree JCheckBox樹復(fù)選框詳解

    這篇文章主要為大家詳細(xì)介紹了java JTree JCheckBox樹復(fù)選框的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Socket與ServerSocket類構(gòu)造方法與API

    Socket與ServerSocket類構(gòu)造方法與API

    今天小編為大家整理了Socket與ServerSocket類構(gòu)造方法與API,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值。需要的朋友可以收藏下,方便下次瀏覽觀看
    2021-12-12
  • Java中數(shù)據(jù)庫加密的方式分享

    Java中數(shù)據(jù)庫加密的方式分享

    在現(xiàn)今互聯(lián)網(wǎng)時代,數(shù)據(jù)安全已經(jīng)成為了我們必須要面對的重要課題,在本文中,我們將會介紹Java中常用的幾種數(shù)據(jù)庫加密方式并分析一下它們的優(yōu)缺點,希望對大家有所幫助
    2023-05-05
  • spring boot 1.5.4 集成shiro+cas,實現(xiàn)單點登錄和權(quán)限控制

    spring boot 1.5.4 集成shiro+cas,實現(xiàn)單點登錄和權(quán)限控制

    這篇文章主要介紹了spring boot 1.5.4 集成shiro+cas,實現(xiàn)單點登錄和權(quán)限控制,需要的朋友可以參考下
    2017-06-06
  • Java編程簡單應(yīng)用

    Java編程簡單應(yīng)用

    本文主要介紹了三個簡單Java小程序———1、HelloWorld(HelloWorld的來源);2、輸出個人信息3、輸出特殊圖案。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Java代理模式的示例詳解

    Java代理模式的示例詳解

    代理模式(Proxy?Parttern)為一個對象提供一個替身,來控制這個對象的訪問,即通過代理對象來訪問目標(biāo)對象。本文將通過示例詳細(xì)講解一下這個模式,需要的可以參考一下
    2022-08-08

最新評論