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

Java中Stream的flatMap與map使用場景及區(qū)別詳解

 更新時間:2024年01月27日 08:36:27   作者:極光雨雨  
這篇文章主要介紹了Java中Stream的flatMap與map使用場景及區(qū)別詳解,Stream 流式操作,一般用于操作集合即 List 一類的數據結構,簡單來說 Stream 的 map 使得其中的元素轉為另一種元素的映射(map)方法,需要的朋友可以參考下

基本概念

Stream 流式操作,一般用于操作集合即 List 一類的數據結構,JDK 1.8 后的新特性

Stream 中的 map

一般用于對List 中的每一個元素執(zhí)行指定方法使得最終結果為最終的集合為每一個記錄的某一屬性的集合(get 方法)或者通過自定義的轉換方法等通過方法的加工將每一個元素處理為另一種元素最終返回成為一種全新元素的集合,即 簡單來說 Stream 的 map 使得其中的元素轉為另一種元素的映射(map)方法。

Stream 中的 flatMap

flat (扁平化) 當我們處理某一個集合時,這個集合中的某一個屬性依舊是一個集合即 類似于二維數組可以如下理解: 我們定義一個人的類,每個人又有很多衣服,衣服也定義一個類,所以可以如下定義:

在這里插入圖片描述

如果我們處理一個人的List 集合,并想把所有人的 服裝List 合并到一起時就可以使用 flatMap 案例如下:

        List<Clothes> clothesList1 = new ArrayList<>();        clothesList1.add(new Clothes("大衣"));        clothesList1.add(new Clothes("外套"));        List<Clothes> clothesList2 = new ArrayList<>();        clothesList2.add(new Clothes("襯衣"));        clothesList2.add(new Clothes("短袖"));        // 第一個人        HumanBeing humanBeing = new HumanBeing();        humanBeing.setClothesList(clothesList1);        // 第二個人        HumanBeing humanBeing2 = new HumanBeing();        humanBeing2.setClothesList(clothesList2);        List<HumanBeing> humanBeingList = new ArrayList<>();        humanBeingList.add(humanBeing);        humanBeingList.add(humanBeing2);                // flatMap 執(zhí)行        List<Clothes> collect = humanBeingList.stream()                .flatMap(aPerson -> aPerson.getClothesList().stream())                .collect(Collectors.toList());        // map 執(zhí)行        List<List<Clothes>> collect1 = humanBeingList.stream()                .map(item -> item.getClothesList())                .collect(Collectors.toList());        System.out.println("collect = " + collect);

結果如下:

collect1 = [[Clothes(name=大衣, type=null, price=0.0, weight=0.0, size=null), Clothes(name=外套, type=null, price=0.0, weight=0.0, size=null)], [Clothes(name=襯衣, type=null, price=0.0, weight=0.0, size=null), Clothes(name=短袖, type=null, price=0.0, weight=0.0, size=null)]]collect = [Clothes(name=大衣, type=null, price=0.0, weight=0.0, size=null), Clothes(name=外套, type=null, price=0.0, weight=0.0, size=null), Clothes(name=襯衣, type=null, price=0.0, weight=0.0, size=null), Clothes(name=短袖, type=null, price=0.0, weight=0.0, size=null)]

可以看的出我們最終的結果中 flatMap 將每一個人的衣服集合合并到了一個集合中。而 普通的map 只是將多個List 加入到了一個 List 相當于一個二維數組。 flatMap 可以看做兩個流程,先執(zhí)行 普通的map,然后執(zhí)行 flat 扁平化過程,可以如圖理解如下:

在這里插入圖片描述

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

相關文章

  • 詳解如何通過Java實現(xiàn)類似Nginx代理

    詳解如何通過Java實現(xiàn)類似Nginx代理

    最近遇到一個問題,在內網環(huán)境中部署的項目需要調用外網完成一些應用,一般情況我們可以通過增加一臺機器,部署到可以訪問外網的服務器上,然后內網直接連接該機器通過Nginx進行代理即可,所以本文介紹了如何通過Java實現(xiàn)類似Nginx代理,需要的朋友可以參考下
    2024-08-08
  • Spring使用Configuration注解管理bean的方式詳解

    Spring使用Configuration注解管理bean的方式詳解

    在Spring的世界里,Configuration注解就像是一位細心的園丁,它的主要職責是在這個繁花似錦的園子里,幫助我們聲明和管理各種各樣的bean,本文給大家介紹了在Spring中如何優(yōu)雅地管理你的bean,需要的朋友可以參考下
    2024-05-05
  • Spring MVC 4.1.3 + MyBatis零基礎搭建Web開發(fā)框架(注解模式)

    Spring MVC 4.1.3 + MyBatis零基礎搭建Web開發(fā)框架(注解模式)

    本篇文章主要介紹了Spring MVC 4.1.3 + MyBatis零基礎搭建Web開發(fā)框架(注解模式),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 詳解如何在Java項目中實現(xiàn)信號的連續(xù)接收

    詳解如何在Java項目中實現(xiàn)信號的連續(xù)接收

    在Java項目中,信號的連續(xù)接收是一項重要的任務,特別是在處理異步事件或者需要對外部事件做出響應時,本篇博客將介紹如何在Java項目中實現(xiàn)信號的連續(xù)接收,包括信號的監(jiān)聽、處理和停止等步驟,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)英文句子中的單詞順序逆序輸出的方法

    Java實現(xiàn)英文句子中的單詞順序逆序輸出的方法

    這篇文章主要介紹了Java實現(xiàn)英文句子中的單詞順序逆序輸出的方法,涉及java字符串遍歷、判斷、截取、輸出等相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java實現(xiàn)的校驗銀行卡功能示例

    Java實現(xiàn)的校驗銀行卡功能示例

    這篇文章主要介紹了Java實現(xiàn)的校驗銀行卡功能,結合完整實例形式分析了java針對銀行卡類型、歸屬地等信息的判斷、讀取相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • 詳解Java進階知識注解

    詳解Java進階知識注解

    這篇文章主要介紹了詳解Java進階知識注解,從注解的定義、元注解、自定義注解、注解實例這幾個方面,讓同學們更加深入的了解注解
    2021-04-04
  • Bean?Searcher配合SpringBoot的使用詳解

    Bean?Searcher配合SpringBoot的使用詳解

    這篇文章主要介紹了Bean?Searcher配合SpringBoot的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 關于spring項目中無法加載resources下文件問題及解決方法

    關于spring項目中無法加載resources下文件問題及解決方法

    在學習Spring過程中,TestContext框架試圖檢測一個默認的XML資源位置,再resources下創(chuàng)建了一個com.example的文件夾,執(zhí)行時,報錯,本文給大家介紹spring項目中無法加載resources下文件,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • MyBatis-Plus 默認不更新null的4種方法

    MyBatis-Plus 默認不更新null的4種方法

    本文主要介紹了MyBatis-Plus 默認不更新null的4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-01-01

最新評論

绥江县| 饶阳县| 涞水县| 毕节市| 韩城市| 花垣县| 海原县| 文水县| 兴海县| 喀喇沁旗| 灌南县| 龙江县| 班玛县| 新野县| 绥芬河市| 苗栗市| 朔州市| 玛纳斯县| 东兴市| 平阳县| 镇雄县| 定襄县| 鄄城县| 翁牛特旗| 汝州市| 铜陵市| 岚皋县| 资中县| 曲靖市| 高阳县| 玉山县| 邵东县| 宿州市| 资溪县| 周口市| 大化| 大城县| 正蓝旗| 桦甸市| 新疆| 理塘县|