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

java對象list使用stream根據(jù)某一個(gè)屬性轉(zhuǎn)換成map的3種方式舉例

 更新時(shí)間:2024年01月23日 10:25:52   作者:jilcccccc  
開發(fā)小伙伴們通常會(huì)需要使用到對象和Map互相轉(zhuǎn)換的開發(fā)場景,下面這篇文章主要給大家介紹了關(guān)于java對象list使用stream根據(jù)某一個(gè)屬性轉(zhuǎn)換成map的3種方式,需要的朋友可以參考下

可以使用Java 8中的Stream API將List轉(zhuǎn)換為Map,并根據(jù)某個(gè)屬性作為鍵或值。以下是一些示例代碼:

將List轉(zhuǎn)換為Map,鍵為某個(gè)屬性,值為對象本身

List<Person> personList = ... // 假設(shè)這是一個(gè)Person對象列表
Map<String, Person> personMap = personList.stream()
        .collect(Collectors.toMap(Person::getName, Function.identity()));

在這個(gè)示例中,將Person對象列表轉(zhuǎn)換為Map,其中鍵為Person對象的name屬性,值為Person對象本身。

將List轉(zhuǎn)換為Map,鍵為對象本身,值為某個(gè)屬性

List<Person> personList = ... // 假設(shè)這是一個(gè)Person對象列表
Map<Person, String> personMap = personList.stream()
        .collect(Collectors.toMap(Function.identity(), Person::getAddress));

在這個(gè)示例中,將Person對象列表轉(zhuǎn)換為Map,其中鍵為Person對象本身,值為Person對象的address屬性。

將List轉(zhuǎn)換為Map,鍵為某個(gè)屬性,值為另一個(gè)屬性

List<Person> personList = ... // 假設(shè)這是一個(gè)Person對象列表
Map<String, String> personMap = personList.stream()
        .collect(Collectors.toMap(Person::getName, Person::getAddress));

在這個(gè)示例中,將Person對象列表轉(zhuǎn)換為Map,其中鍵為Person對象的name屬性,值為Person對象的address屬性。

無論使用哪種方式,都可以使用Java 8的Stream API將List轉(zhuǎn)換為Map,并根據(jù)某個(gè)屬性作為鍵或值。需要注意的是,在將List轉(zhuǎn)換為Map時(shí),鍵必須是唯一的,否則將會(huì)拋出異常。

附:list轉(zhuǎn)map特殊操作

不同實(shí)體的list之間轉(zhuǎn)化,相同屬性的賦值

    List<ResourcesInfoCapacityExcel> resourceInfoExcels = resourcesInfoCapacities.stream().map(
                todo -> new ResourcesInfoCapacityExcel(todo.getModelName(), todo.getExistingCapacity(), todo.getForecastWorkload(), todo.getDifferenceWorkload(), todo.getMonth()
                )).collect(Collectors.toList());

非stram

相同key將值相加,不同key put進(jìn)map

  Map<String, Double> foreWorkLoad = new HashMap<>();
foreWorkLoad.merge(key, resourcesWorkloadCalculate1.getWorkLoad(), (a, b) -> a + b);

list轉(zhuǎn)map,相同key的list相加

 Map<String, List<ResourcesInfo>> resourcesInfosListMap =new HashMap<>();
        for (ResourcesInfo resourcesInfo:
        resourcesInfos) {
            String key=resourcesInfo.getModel() + "," + workDateMap.get(resourcesInfo.getMonth());

            List<ResourcesInfo>  moduleRanks = resourcesInfos.stream()
                    .filter(e -> resourcesInfo.getModel() == null || resourcesInfo.getModel().equals(e.getModel())
                    ).filter(e -> resourcesInfo.getMonth() == null || resourcesInfo.getMonth().equals(e.getMonth())
            ).collect(Collectors.toList());
            if (resourcesInfosListMap.get(key)==null){
                resourcesInfosListMap.put(key,moduleRanks);
            }else {
                moduleRanks.addAll(resourcesInfosListMap.get(key));
                resourcesInfosListMap.put(key,moduleRanks);
            }
        }

總結(jié)

到此這篇關(guān)于java對象list使用stream根據(jù)某一個(gè)屬性轉(zhuǎn)換成map的3種方式的文章就介紹到這了,更多相關(guān)java對象根據(jù)某屬性轉(zhuǎn)換map內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一篇文章帶你了解如何正確使用java線程池

    一篇文章帶你了解如何正確使用java線程池

    這篇文章主要介紹了如何正確使用java線程池,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • Spring實(shí)戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作示例

    Spring實(shí)戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作,結(jié)合實(shí)例形式分析了靜態(tài)工廠方法創(chuàng)建Bean的相關(guān)實(shí)現(xiàn)步驟與操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • IDEA如何設(shè)置SVN提交忽略文件 target.iml

    IDEA如何設(shè)置SVN提交忽略文件 target.iml

    使用IDEA的SVN插件時(shí),可能會(huì)遇到提交不必要文件的問題,解決這個(gè)問題有兩種方法:第一種是在IDEA設(shè)置中的File Types下的Ignore files and folders添加需要忽略的文件或文件夾;第二種是使用SVN客戶端TortoiseSVN,在項(xiàng)目目錄點(diǎn)擊右鍵選擇properties
    2024-10-10
  • Java中的HashMap集合深度解析

    Java中的HashMap集合深度解析

    這篇文章主要介紹了Java中的HashMap集合深度解析, HashMap可以說是Java中最常用的集合類框架之一,是Java語言中非常典型的數(shù)據(jù)結(jié)構(gòu),我們總會(huì)在不經(jīng)意間用到它,很大程度上方便了我們?nèi)粘i_發(fā),需要的朋友可以參考下
    2023-09-09
  • 詳解如何在Spring?Security中自定義權(quán)限表達(dá)式

    詳解如何在Spring?Security中自定義權(quán)限表達(dá)式

    這篇文章主要和大家詳細(xì)介紹一下如何在Spring?Security中自定義權(quán)限表達(dá)式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-07-07
  • 深入解析Java編程中面向字節(jié)流的一些應(yīng)用

    深入解析Java編程中面向字節(jié)流的一些應(yīng)用

    這篇文章主要介紹了Java編程中面向字節(jié)流的一些應(yīng)用,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • java中的HashMap多層嵌套

    java中的HashMap多層嵌套

    這篇文章主要介紹了java中的HashMap多層嵌套問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Spring ApplicationContext接口功能詳細(xì)介紹

    Spring ApplicationContext接口功能詳細(xì)介紹

    ApplicationContext是Spring應(yīng)用程序中的中央接口,由于繼承了多個(gè)組件,使得ApplicationContext擁有了許多Spring的核心功能,如獲取bean組件,注冊監(jiān)聽事件,加載資源文件等
    2023-02-02
  • SpringBoot項(xiàng)目使用?axis?調(diào)用webservice接口的實(shí)踐記錄

    SpringBoot項(xiàng)目使用?axis?調(diào)用webservice接口的實(shí)踐記錄

    這篇文章主要介紹了SpringBoot項(xiàng)目使用?axis?調(diào)用webservice接口,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Springboot基礎(chǔ)學(xué)習(xí)之初識SpringBoot

    Springboot基礎(chǔ)學(xué)習(xí)之初識SpringBoot

    今天帶大家學(xué)習(xí)Springboot基礎(chǔ)知識,文中有非常詳細(xì)的圖文解說及代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05

最新評論

凤阳县| 柯坪县| 漳平市| 开封县| 郓城县| 宜君县| 唐海县| 裕民县| 思南县| 武鸣县| 东兰县| 湘阴县| 盖州市| 札达县| 南漳县| 长春市| 营山县| 闽清县| 志丹县| 荃湾区| 仁化县| 高雄市| 德安县| 乌拉特中旗| 宁南县| 寿宁县| 天峨县| 大埔区| 平和县| 重庆市| 永年县| 洪湖市| 岑巩县| 印江| 自治县| 原平市| 乐安县| 渝北区| 绥化市| 郯城县| 休宁县|