开发者

Java中List使用stream流转成map的几种方式详解

目录
  • 实体例子
  • List 转成Map<String,Object>
  • List 转成Map<Stringandroid,String>
  • List 转成Map<String,List>
    • 方法一:
    • 方法二:
  • List 转成Map<String,List>
    • List<Map<String,Object>> 转成Map<String,Map<String,Object>>
      • List<Map<String,Object>> 转成Map<String,Object>
        • List<Map<String,String>> 转成Map<String,Map<String,String>>
          • List<Map<String,String>> 转成Map<String,String>
            • 总结

              实体例子

              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<String,Object>

              	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<String,String>

              	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<String,List>

              方法一:

              	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”:“熊大”}],“熊http://www.devze.com二”:[{“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<String,List>

              	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<String,Object>> 转成Map<String,Map<String,Object>>

              		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<String,Object>> 转成Map<Str编程客栈ing,Object>

              		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<String,String>> 转成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","森林第一个小屋");
                      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<String,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","森林第一个小屋");
                      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.pwww.devze.comut("address","森林第三个小屋");
                      li开发者_Python入门st.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”:“光头强”}

              总结

              到此这篇关于Java中List使用stream流转成map的几种方式的文章就介绍到这了,更多相关Java List用stream流转map内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

              0

              上一篇:

              下一篇:

              精彩评论

              暂无评论...
              验证码 换一张
              取 消

              最新开发

              开发排行榜