我有一张地图,其中“价值”是项目清单:
Map<User, List<Project>> projectsMap = ...
我想从地图中提取项目,但仅在1个项目列表中提取:
我已经看过答案,但它们不适用于我的情况。 我不想要这个结果:
List<List<Project>> theValueOfTheMap;
我想要的结果是:
List<Project> projects = ... // All the project in the value's map
如何使用JAVA 8 Streams实现这一目标? 谢谢。 莱昂纳多。
答案 0 :(得分:1)
感谢@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());
答案 1 :(得分:0)
<title>
<band height="100">
<textField evaluationTime="Report">
<reportElement x="72" y="16" width="100" height="24" uuid="698866c8-7d26-4bc7-8727-b4a56d239a53"/>
<textFieldExpression><![CDATA[$F{MyField}]]></textFieldExpression>
</textField>
...
</band>
</title>
答案 2 :(得分:-1)
Map有一个方法可以从中检索所有值。
您只需要调用double
来制作地图值的所有对象列表。