List使用stream流转成map的几种方式

  • 实体例子
  • List 转成Map
  • List 转成Map
  • List 转成Map<String,List>
    • 方法一:
    • 方法二:
  • List 转成Map<String,List>
  • List<Map> 转成Map<String,Map>
  • List<Map> 转成Map
  • List<Map> 转成Map<String,Map>
  • List<Map> 转成Map
  • 实体例子

    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 转成Map

    List<Person> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");Person person4 = new Person("熊大","森林第四个小屋");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));

    控制台打印日志:
    {“光头强”:{“address”:“森林第三个小屋”,“name”:“光头强”},“熊大”:{“address”:“森林第一个小屋”,“name”:“熊大”},“熊二”:{“address”:“森林第二个小屋”,“name”:“熊二”}}

    List 转成Map

    List<Person> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");Person person4 = new Person("熊大","森林第四个小屋");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));

    控制台打印日志:
    {“光头强”:“森林第三个小屋”,“熊大”:“森林第一个小屋”,“熊二”:“森林第二个小屋”}

    List 转成Map

    方法一:

    List<Person> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");Person person4 = new Person("熊大","森林第四个小屋");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));

    控制台打印日志:
    {“光头强”:[{“address”:“森林第三个小屋”,“name”:“光头强”}],“熊大”:[{“address”:“森林第一个小屋”,“name”:“熊大”},{“address”:“森林第四个小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二个小屋”,“name”:“熊二”}]}

    方法二:

    List<Person> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");Person person4 = new Person("熊大","森林第四个小屋");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));

    控制台打印日志:
    {“光头强”:[{“address”:“森林第三个小屋”,“name”:“光头强”}],“熊大”:[{“address”:“森林第一个小屋”,“name”:“熊大”},{“address”:“森林第四个小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二个小屋”,“name”:“熊二”}]}

    List 转成Map

    List<Person> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");Person person4 = new Person("熊大","森林第四个小屋");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));

    控制台打印日志:
    {“光头强”:[“森林第三个小屋”],“熊大”:[“森林第一个小屋”,“森林第四个小屋”],“熊二”:[“森林第二个小屋”]}

    List<Map> 转成Map<String,Map>

    List<Map<String,Object>> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");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”:“森林第一个小屋”,“name”:“熊大”},“id”:“1”},“2”:{“person”:{“address”:“森林第二个小屋”,“name”:“熊二”},“id”:“2”},“3”:{“person”:{“address”:“森林第三个小屋”,“name”:“光头强”},“id”:“3”}}

    List<Map> 转成Map

    List<Map<String,Object>> list = new ArrayList<>();Person person1 = new Person("熊大","森林第一个小屋");Person person2 = new Person("熊二","森林第二个小屋");Person person3 = new Person("光头强","森林第三个小屋");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”:“森林第一个小屋”,“name”:“熊大”},“2”:{“address”:“森林第二个小屋”,“name”:“熊二”},“3”:{“address”:“森林第三个小屋”,“name”:“光头强”}}

    List<Map> 转成Map<String,Map>

    List<Map<String,String>> list = new ArrayList<>();Map<String,String> map1 = new HashMap<>();map1.put("id","1");map1.put("name","熊大");map1.put("address","森林第一个小屋");Map<String,String> map2 = new HashMap<>();map2.put("id","2");map2.put("name","熊二");map2.put("address","森林第二个小屋");Map<String,String> map3 = new HashMap<>();map3.put("id","3");map3.put("name","光头强");map3.put("address","森林第三个小屋");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”:“森林第一个小屋”,“name”:“熊大”,“id”:“1”},“2”:{“address”:“森林第二个小屋”,“name”:“熊二”,“id”:“2”},“3”:{“address”:“森林第三个小屋”,“name”:“光头强”,“id”:“3”}}

    List<Map> 转成Map

    List<Map<String,String>> list = new ArrayList<>();Map<String,String> map1 = new HashMap<>();map1.put("id","1");map1.put("name","熊大");map1.put("address","森林第一个小屋");Map<String,String> map2 = new HashMap<>();map2.put("id","2");map2.put("name","熊二");map2.put("address","森林第二个小屋");Map<String,String> map3 = new HashMap<>();map3.put("id","3");map3.put("name","光头强");map3.put("address","森林第三个小屋");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”:“光头强”}

    Copyright © maxssl.com 版权所有 浙ICP备2022011180号