当前位置: 首页 > 面试题库 >

使用JAVA 8 Streams从仅创建地图值列表的地图中创建1个列表

岳昊空
2023-03-14
问题内容

我有一张地图,其中“值”是项目列表:

Map<User, List<Project>> projectsMap = ...

我想从地图中提取项目,但仅提取1个项目列表:

我已经看到了答案,但它们不适用于我的情况。我不想要这个结果:

List<List<Project>> theValueOfTheMap;

我想要的结果是:

List<Project> projects = ... // All the project in the value's map

如何使用JAVA 8 Streams实现此目的?谢谢。莱昂纳多。


问题答案:

感谢@Holger的回答。

List<Project> projects = projectsMap.values().stream().flatMap(List::stream)
.collect(‌​Collectors.toList())‌​;

在值映射中的Collection为Null的情况下避免NullPointerException的代码

projectsMap.values().stream().filter(Objects::nonNull)
.flatMap(List::stream).collect(Collectors.toList());


 类似资料:
  • 问题内容: 我有一张地图清单。 列表中的值例如是 最后,我想要一个Map>,就像 如何在Java中实现这一目标。 代码: 现在,基于与我想要的相同ID,此genericList是该列表的输入并来自此列表 基本上,要根据ID将响应归类为String,将具有相同ID的响应分组在列表中,然后创建一个以ID为键并以列表为值的新映射。 问题答案: 您可以使用Java 8进行以下操作: 这将打印: 整数:1

  • 问题内容: 我想要一些排序方法: 鉴于GDK的工作方式,我希望能够做类似的事情: 但我没有在文档中看到任何内容…我缺少什么吗?还是我太懒了? 问题答案: 最近,我遇到了需要完全做到这一点的需求:将列表转换为地图。这个问题是在Groovy版本1.7.9发布之前发布的,因此该方法尚不存在。它与建议的方法完全相同 如果由于某种原因你坚持使用旧的Groovy版本,该方法也可以用这是一个经过稍微修改的版本,

  • 是否可以使用Google API为网站创建一个与此完全相同的地图: https://www.google.pl/maps/place/Googleplex/@37.422,-122.0840835,19z/data=!4m2!3m1!1s0x808fba02425dad8f: 0x6c296c66619367e0 所以我想要的是将地点ID传递给API,以获得一个像Googleplex这样的地方,我

  • 问题内容: 我想创建一个包含以下项的条目 如何用Java做到这一点? 我尝试了以下失败。 问题答案:

  • 使用亿景智图,您可以生成自己的业务地图,并在线共享和发布这些地图,比如,客户分布图、配送路线图、布局规划图等等。生成一幅地图,基本流程是这样的:新建地图->添加图层->绘制对象(支持批量添加及使用已有数据)->发布地图。这里,为大家介绍,如何构建自定义地图: ● 新建地图 ● 上传Excel/CSV数据 ● 快速添加行政区划 ● 手动绘制地图 ● 搜索添加标注 ● 设置地图名称 ● 设定地图默认视

  • 问题内容: 我有看起来像的数据框: 为了进一步处理数据,我需要拆分该列,然后将其替换为如下所示的多列: 因此,这些列可以追加到初始数据帧。我不知道该怎么做,因为像 不能解决我的问题,因为我不仅需要基于列表中位置的列,还需要基于列表中每个唯一值的列。您知道我该如何处理吗? 问题答案: 您可以使用和: 如果需要计数值,则可以使用(我添加一个字符串进行测试):