最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

什么是 stream 流

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

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

Map

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

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

forEach

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

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

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

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

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

使用場景

當只是使用一下list中的元素的時候,用map;

當需要改變list中的元素值的時候,用forEach

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

相關文章

  • Java求解二叉樹的最近公共祖先實例代碼

    Java求解二叉樹的最近公共祖先實例代碼

    樹是一種非線性的數(shù)據(jù)結構,它是由n(n>=0)個有限結點組成一個具有層次關系的集合,這篇文章主要給大家介紹了關于Java求解二叉樹的最近公共祖先的相關資料,需要的朋友可以參考下
    2021-06-06
  • Java中Controller引起的Ambiguous?mapping問題及解決

    Java中Controller引起的Ambiguous?mapping問題及解決

    這篇文章主要介紹了Java中Controller引起的Ambiguous?mapping問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java?SpringMVC實現(xiàn)自定義攔截器

    Java?SpringMVC實現(xiàn)自定義攔截器

    這篇文章主要為大家詳細介紹了SpringMVC實現(xiàn)自定義攔截器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Spring Boot集成redis,key自定義生成方式

    Spring Boot集成redis,key自定義生成方式

    這篇文章主要介紹了Spring Boot集成redis,key自定義生成方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring內存緩存Caffeine的基本使用教程分享

    Spring內存緩存Caffeine的基本使用教程分享

    Caffeine作為當下本地緩存的王者被大量的應用再實際的項目中,可以有效的提高服務吞吐率、qps,降低rt,本文就來簡單介紹下Caffeine的使用姿勢吧
    2023-03-03
  • SpringBoot整合Shiro兩種方式(總結)

    SpringBoot整合Shiro兩種方式(總結)

    這篇文章主要介紹了SpringBoot整合Shiro兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • tio-http-server打包為二進制文件的實現(xiàn)及優(yōu)勢詳解

    tio-http-server打包為二進制文件的實現(xiàn)及優(yōu)勢詳解

    這篇文章主要為大家介紹了tio-http-server打包為二進制文件實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • idea如何自動添加版權許可證信息

    idea如何自動添加版權許可證信息

    這篇文章主要介紹了idea如何自動添加版權許可證信息問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • springboot中@PostConstruct注解使用小結

    springboot中@PostConstruct注解使用小結

    本文主要介紹了springboot中@PostConstruct注解使用小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • springboot vue完成發(fā)送接口請求顯示響應頭信息

    springboot vue完成發(fā)送接口請求顯示響應頭信息

    這篇文章主要為大家介紹了springboot+vue完成發(fā)送接口請求顯示響應頭信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論

丹寨县| 庐江县| 江山市| 景谷| 邮箱| 华容县| 息烽县| 化隆| 云南省| 怀远县| 卫辉市| 绵阳市| 新宾| 平湖市| 宁河县| 扶风县| 巴彦淖尔市| 准格尔旗| 深泽县| 舟曲县| 武山县| 全南县| 丹东市| 略阳县| 昌乐县| 嵊州市| 新和县| 太和县| 内丘县| 长沙市| 赞皇县| 巢湖市| 盐津县| 勐海县| 肥城市| 海林市| 阳山县| 乌拉特后旗| 思南县| 拜城县| 元氏县|