Java8使用stream流将list转map
  XlrEglT8eae4 2023年11月22日 30 0

stream将list转化为map

在Stream流中将List转换为Map,是使用Collectors.toMap方法来进行转换。

1.key和value都是对象中的某个属性值

Map<String, String> userMap1 = userList.stream().collect(Collectors.toMap(User::getId, User::getName));

2.key是对象中的某个属性值,value是对象本身(使用返回本身的lambda表达式)。

Map<String, User> userMap2 = userList.stream().collect(Collectors.toMap(User::getId, User -> User));

3.key是对象中的某个属性值,value是对象本身(使用Function.identity()的简洁写法)。

Map<String, User> userMap3 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));

4.key是对象中的某个属性值,value是对象本身,当key冲突时选择第二个key值覆盖第一个key值。

Map<String, User> userMap4 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (oldValue, newValue) -> newValue));

如果不正确指定Collectors.toMap方法的第三个参数(key冲突处理函数),那么在key重复的情况下该方法会报出【Duplicate Key】的错误导致Stream流异常终止,使用时要格外注意这一点。

List 以ID分组 Map<Integer,List>

Map<Integer, List> groupBy = appleList.stream().collect(Collectors.groupingBy(Apple::getId));
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月22日 0

暂无评论

推荐阅读
  rvP2pqm8fEoB   2023年12月24日   29   0   0 ListJavaListJava
XlrEglT8eae4