写点什么

Java 8 使用 Stream 把 List 转换为 map

作者:HoneyMoose
  • 2023-01-13
    美国
  • 本文字数:377 字

    阅读完需:约 1 分钟

有这么一个小需求,有 2 个 List,但是我们希望返回 Map。


List 1 的数据到大于 List 2 中的数据。


返回 List1 的 map,如果 List 中的数据在 List 2 中存在的话,Map 的值是 True,如果不存在的话,是 False。


List1 和 List2 中的元素都是整数。


Stream


我们使用了 Java 提供的 Stream,当然你也可以用 For 循环。


下面的 map1 和 map 2 是等价的。


    List<Integer> reqIds = Arrays.asList(1, 2);    List<Integer> reqs = Arrays.asList(1);    Map<Integer, Boolean> map1 = reqIds.stream().collect(Collectors.toMap(Function.identity(), item -> reqs.contains(item)));    Map<Integer, Boolean> map2 = reqIds.stream().collect(Collectors.toMap(Function.identity(), reqs::contains));
log.debug("Map Size {}",map2);
复制代码


然后验证下结果。


https://www.ossez.com/t/java-8-stream-list-map/14296

用户头像

HoneyMoose

关注

还未添加个人签名 2021-03-06 加入

还未添加个人简介

评论

发布
暂无评论
Java 8 使用 Stream 把 List 转换为 map_HoneyMoose_InfoQ写作社区