验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Java中List使用stream流转成map的方法有哪些

阅读:1120 来源:乙速云 作者:代码code

Java中List使用stream流转成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 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 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 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 map =  list.stream().collect(Collectors.toMap(Person::getName,Person::getAddress,(value1, value2) -> value1));
      	System.out.println(JSON.toJSONString(map));

      控制台打印日志:

      {“光头强”:“森林第三个小屋”,“熊大”:“森林第一个小屋”,“熊二”:“森林第二个小屋”}

      List 转成Map

      方法一:

      	List 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> map = list.stream().collect(Collectors.groupingBy(Person::getName));
      	System.out.println(JSON.toJSONString(map));

      控制台打印日志:

      {“光头强”:[{“address”:“森林第三个小屋”,“name”:“光头强”}],“熊大”:[{“address”:“森林第一个小屋”,“name”:“熊大”},{“address”:“森林第四个小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二个小屋”,“name”:“熊二”}]}

      方法二:

      	List 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> map =  list.stream().collect(Collectors.toMap(Person::getName,each->Collections.singletonList(each),(value1, value2) -> {
                  List 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 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> map = list.stream().collect(Collectors.toMap(Person::getName,each->Collections.singletonList(each.getAddress()),(value1, value2) -> {
                  List union = new ArrayList<>(value1);
                  union.addAll(value2);
                  return union;
              }));
      	System.out.println(JSON.toJSONString(map));

      控制台打印日志:

      {“光头强”:[“森林第三个小屋”],“熊大”:[“森林第一个小屋”,“森林第四个小屋”],“熊二”:[“森林第二个小屋”]}

      List> 转成Map>

      		List> list = new ArrayList<>();
              Person person1 = new Person("熊大","森林第一个小屋");
              Person person2 = new Person("熊二","森林第二个小屋");
              Person person3 = new Person("光头强","森林第三个小屋");
              Map map1 = new HashMap<>();
              map1.put("id","1");
              map1.put("person",person1);
              Map map2 = new HashMap<>();
              map2.put("id","2");
              map2.put("person",person2);
              Map map3 = new HashMap<>();
              map3.put("id","3");
              map3.put("person",person3);
              list.add(map1);
              list.add(map2);
              list.add(map3);
              Map> 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

      		List> list = new ArrayList<>();
              Person person1 = new Person("熊大","森林第一个小屋");
              Person person2 = new Person("熊二","森林第二个小屋");
              Person person3 = new Person("光头强","森林第三个小屋");
              Map map1 = new HashMap<>();
              map1.put("id","1");
              map1.put("person",person1);
              Map map2 = new HashMap<>();
              map2.put("id","2");
              map2.put("person",person2);
              Map map3 = new HashMap<>();
              map3.put("id","3");
              map3.put("person",person3);
              list.add(map1);
              list.add(map2);
              list.add(map3);
              Map 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>

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

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

    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>