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

Java中List使用stream流轉(zhuǎn)成map的幾種方式詳解

 更新時(shí)間:2023年04月19日 09:20:38   作者:小小小米fly  
Stream是Java8中處理集合的關(guān)鍵抽象概念,它可以指定你希望對集合進(jìn)行的操作,可以執(zhí)行非常復(fù)雜的查找、過濾和映射數(shù)據(jù)等操作,下面這篇文章主要給大家介紹了關(guān)于Java中List使用stream流轉(zhuǎn)成map的幾種方式,需要的朋友可以參考下

實(shí)體例子

public class Person {
    private String name;
    private String address;
    public Person(String name, String address) {
        this.name = name;
        this.address = address;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

List 轉(zhuǎn)成Map<String,Object>

	List<Person> list = new ArrayList<>();
	Person person1 = new Person("熊大","森林第一個(gè)小屋");
	Person person2 = new Person("熊二","森林第二個(gè)小屋");
	Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
	Person person4 = new Person("熊大","森林第四個(gè)小屋");
	list.add(person1);
	list.add(person2);
	list.add(person3);
	list.add(person4);
	Map<String,Person> map =  list.stream().collect(Collectors.toMap(Person::getName,each->each,(value1, value2) -> value1));
	System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“光頭強(qiáng)”:{“address”:“森林第三個(gè)小屋”,“name”:“光頭強(qiáng)”},“熊大”:{“address”:“森林第一個(gè)小屋”,“name”:“熊大”},“熊二”:{“address”:“森林第二個(gè)小屋”,“name”:“熊二”}}

List 轉(zhuǎn)成Map<String,String>

	List<Person> list = new ArrayList<>();
	Person person1 = new Person("熊大","森林第一個(gè)小屋");
	Person person2 = new Person("熊二","森林第二個(gè)小屋");
	Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
	Person person4 = new Person("熊大","森林第四個(gè)小屋");
	list.add(person1);
	list.add(person2);
	list.add(person3);
	list.add(person4);
	Map<String,String> map =  list.stream().collect(Collectors.toMap(Person::getName,Person::getAddress,(value1, value2) -> value1));
	System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“光頭強(qiáng)”:“森林第三個(gè)小屋”,“熊大”:“森林第一個(gè)小屋”,“熊二”:“森林第二個(gè)小屋”}

List 轉(zhuǎn)成Map<String,List>

方法一:

	List<Person> list = new ArrayList<>();
	Person person1 = new Person("熊大","森林第一個(gè)小屋");
	Person person2 = new Person("熊二","森林第二個(gè)小屋");
	Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
	Person person4 = new Person("熊大","森林第四個(gè)小屋");
	list.add(person1);
	list.add(person2);
	list.add(person3);
	list.add(person4);
	Map<String, List<Person>> map = list.stream().collect(Collectors.groupingBy(Person::getName));
	System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“光頭強(qiáng)”:[{“address”:“森林第三個(gè)小屋”,“name”:“光頭強(qiáng)”}],“熊大”:[{“address”:“森林第一個(gè)小屋”,“name”:“熊大”},{“address”:“森林第四個(gè)小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二個(gè)小屋”,“name”:“熊二”}]}

方法二:

	List<Person> list = new ArrayList<>();
	Person person1 = new Person("熊大","森林第一個(gè)小屋");
	Person person2 = new Person("熊二","森林第二個(gè)小屋");
	Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
	Person person4 = new Person("熊大","森林第四個(gè)小屋");
	list.add(person1);
	list.add(person2);
	list.add(person3);
	list.add(person4);
	Map<String,List<Person>> map =  list.stream().collect(Collectors.toMap(Person::getName,each->Collections.singletonList(each),(value1, value2) -> {
            List<Person> union = new ArrayList<>(value1);
            union.addAll(value2);
            return union;
        }));
	System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“光頭強(qiáng)”:[{“address”:“森林第三個(gè)小屋”,“name”:“光頭強(qiáng)”}],“熊大”:[{“address”:“森林第一個(gè)小屋”,“name”:“熊大”},{“address”:“森林第四個(gè)小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二個(gè)小屋”,“name”:“熊二”}]}

List 轉(zhuǎn)成Map<String,List>

	List<Person> list = new ArrayList<>();
	Person person1 = new Person("熊大","森林第一個(gè)小屋");
	Person person2 = new Person("熊二","森林第二個(gè)小屋");
	Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
	Person person4 = new Person("熊大","森林第四個(gè)小屋");
	list.add(person1);
	list.add(person2);
	list.add(person3);
	list.add(person4);
	Map<String,List<String>> map = list.stream().collect(Collectors.toMap(Person::getName,each->Collections.singletonList(each.getAddress()),(value1, value2) -> {
            List<String> union = new ArrayList<>(value1);
            union.addAll(value2);
            return union;
        }));
	System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“光頭強(qiáng)”:[“森林第三個(gè)小屋”],“熊大”:[“森林第一個(gè)小屋”,“森林第四個(gè)小屋”],“熊二”:[“森林第二個(gè)小屋”]}

List<Map<String,Object>> 轉(zhuǎn)成Map<String,Map<String,Object>>

		List<Map<String,Object>> list = new ArrayList<>();
        Person person1 = new Person("熊大","森林第一個(gè)小屋");
        Person person2 = new Person("熊二","森林第二個(gè)小屋");
        Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
        Map<String,Object> map1 = new HashMap<>();
        map1.put("id","1");
        map1.put("person",person1);
        Map<String,Object> map2 = new HashMap<>();
        map2.put("id","2");
        map2.put("person",person2);
        Map<String,Object> map3 = new HashMap<>();
        map3.put("id","3");
        map3.put("person",person3);
        list.add(map1);
        list.add(map2);
        list.add(map3);
        Map<String,Map<String,Object>> map = list.stream().collect(Collectors.toMap(each->Objects.toString(each.get("id"),""),each->each,(key1,key2)->key1));
        System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“1”:{“person”:{“address”:“森林第一個(gè)小屋”,“name”:“熊大”},“id”:“1”},“2”:{“person”:{“address”:“森林第二個(gè)小屋”,“name”:“熊二”},“id”:“2”},“3”:{“person”:{“address”:“森林第三個(gè)小屋”,“name”:“光頭強(qiáng)”},“id”:“3”}}

List<Map<String,Object>> 轉(zhuǎn)成Map<String,Object>

		List<Map<String,Object>> list = new ArrayList<>();
        Person person1 = new Person("熊大","森林第一個(gè)小屋");
        Person person2 = new Person("熊二","森林第二個(gè)小屋");
        Person person3 = new Person("光頭強(qiáng)","森林第三個(gè)小屋");
        Map<String,Object> map1 = new HashMap<>();
        map1.put("id","1");
        map1.put("person",person1);
        Map<String,Object> map2 = new HashMap<>();
        map2.put("id","2");
        map2.put("person",person2);
        Map<String,Object> map3 = new HashMap<>();
        map3.put("id","3");
        map3.put("person",person3);
        list.add(map1);
        list.add(map2);
        list.add(map3);
        Map<String,Object> map = list.stream().collect(Collectors.toMap(each->Objects.toString(each.get("id"),""),each->each.get("person"),(key1,key2)->key1));
        System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“1”:{“address”:“森林第一個(gè)小屋”,“name”:“熊大”},“2”:{“address”:“森林第二個(gè)小屋”,“name”:“熊二”},“3”:{“address”:“森林第三個(gè)小屋”,“name”:“光頭強(qiáng)”}}

List<Map<String,String>> 轉(zhuǎn)成Map<String,Map<String,String>>

		List<Map<String,String>> list = new ArrayList<>();
        Map<String,String> map1 = new HashMap<>();
        map1.put("id","1");
        map1.put("name","熊大");
        map1.put("address","森林第一個(gè)小屋");
        Map<String,String> map2 = new HashMap<>();
        map2.put("id","2");
        map2.put("name","熊二");
        map2.put("address","森林第二個(gè)小屋");
        Map<String,String> map3 = new HashMap<>();
        map3.put("id","3");
        map3.put("name","光頭強(qiáng)");
        map3.put("address","森林第三個(gè)小屋");
        list.add(map1);
        list.add(map2);
        list.add(map3);
        Map<String,Map<String,String>> map = list.stream().collect(Collectors.toMap(each->each.get("id"),each->each,(key1,key2)->key1));
        System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“1”:{“address”:“森林第一個(gè)小屋”,“name”:“熊大”,“id”:“1”},“2”:{“address”:“森林第二個(gè)小屋”,“name”:“熊二”,“id”:“2”},“3”:{“address”:“森林第三個(gè)小屋”,“name”:“光頭強(qiáng)”,“id”:“3”}}

List<Map<String,String>> 轉(zhuǎn)成Map<String,String>

		List<Map<String,String>> list = new ArrayList<>();
        Map<String,String> map1 = new HashMap<>();
        map1.put("id","1");
        map1.put("name","熊大");
        map1.put("address","森林第一個(gè)小屋");
        Map<String,String> map2 = new HashMap<>();
        map2.put("id","2");
        map2.put("name","熊二");
        map2.put("address","森林第二個(gè)小屋");
        Map<String,String> map3 = new HashMap<>();
        map3.put("id","3");
        map3.put("name","光頭強(qiáng)");
        map3.put("address","森林第三個(gè)小屋");
        list.add(map1);
        list.add(map2);
        list.add(map3);
        Map<String,String> map = list.stream().collect(Collectors.toMap(each->each.get("id"),each->each.get("name"),(key1,key2)->key1));
        System.out.println(JSON.toJSONString(map));

控制臺打印日志:

{“1”:“熊大”,“2”:“熊二”,“3”:“光頭強(qiáng)”}

總結(jié)

到此這篇關(guān)于Java中List使用stream流轉(zhuǎn)成map的幾種方式的文章就介紹到這了,更多相關(guān)Java List用stream流轉(zhuǎn)map內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解MongoDB和Spring整合的實(shí)例代碼

    詳解MongoDB和Spring整合的實(shí)例代碼

    這篇文章主要介紹了詳解MongoDB和Spring整合的實(shí)例代碼,Spring提供了MongoTemplate這樣一個(gè)模板類的實(shí)現(xiàn)方法,簡化了具體操作。有興趣的可以了解一下
    2017-07-07
  • Spring MVC-@RequestMapping注解詳解

    Spring MVC-@RequestMapping注解詳解

    @RequestMapping注解的作用,就是將請求和處理請求的控制器方法關(guān)聯(lián)起來,建立映射關(guān)系。這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • java11新特性之集合轉(zhuǎn)換為數(shù)組的方法

    java11新特性之集合轉(zhuǎn)換為數(shù)組的方法

    Java11引入了一種將帶有泛型的集合轉(zhuǎn)換為帶有泛型的數(shù)組的簡單方法,本文通過實(shí)例代碼介紹java11新特性之集合轉(zhuǎn)換為數(shù)組的操作方法,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Java lambda list轉(zhuǎn)換map時(shí),把多個(gè)參數(shù)拼接作為key操作

    Java lambda list轉(zhuǎn)換map時(shí),把多個(gè)參數(shù)拼接作為key操作

    這篇文章主要介紹了Java lambda list轉(zhuǎn)換map時(shí),把多個(gè)參數(shù)拼接作為key操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Spring Boot 如何自定義返回錯(cuò)誤碼錯(cuò)誤信息

    Spring Boot 如何自定義返回錯(cuò)誤碼錯(cuò)誤信息

    這篇文章主要介紹了Spring Boot 如何自定義返回錯(cuò)誤碼錯(cuò)誤信息的相關(guān)知識,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Java基礎(chǔ)之內(nèi)存泄漏與溢出詳解

    Java基礎(chǔ)之內(nèi)存泄漏與溢出詳解

    今天帶大家來了解一下Java內(nèi)存泄漏與溢出的知識,文中有非常詳細(xì)的介紹,對正在學(xué)習(xí)Java基礎(chǔ)的各位小伙伴呢很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • spring系列筆記之常用注解

    spring系列筆記之常用注解

    這篇文章主要給大家介紹了關(guān)于spring系列筆記之常用注解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Springboot+WebSocket+Netty實(shí)現(xiàn)在線聊天/群聊系統(tǒng)

    Springboot+WebSocket+Netty實(shí)現(xiàn)在線聊天/群聊系統(tǒng)

    這篇文章主要實(shí)現(xiàn)在好友添加、建群、聊天對話、群聊功能,使用Java作為后端語言進(jìn)行支持,界面友好,開發(fā)簡單,文章中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-08-08
  • Java 分析并解決內(nèi)存泄漏的實(shí)例

    Java 分析并解決內(nèi)存泄漏的實(shí)例

    這篇文章主要介紹了Java 分析并解決內(nèi)存泄漏的實(shí)例,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • springboot多環(huán)境配置方案(不用5分鐘)

    springboot多環(huán)境配置方案(不用5分鐘)

    這篇文章主要介紹了springboot多環(huán)境配置方案(不用5分鐘),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論

新晃| 天门市| 德化县| 宁夏| 和林格尔县| 宁海县| 七台河市| 望城县| 循化| 凭祥市| 上栗县| 吉水县| 罗山县| 海林市| 白河县| 灵武市| 泸定县| 名山县| 卢龙县| 宜昌市| 阿城市| 望谟县| 洞头县| 长寿区| 威信县| 安徽省| 井陉县| 嘉义市| 当阳市| 罗平县| 西乌珠穆沁旗| 镇雄县| 二手房| 抚顺市| 岳西县| 衡东县| 鄂伦春自治旗| 遵义市| 海晏县| 乌兰察布市| 灌阳县|