Java 如何从地图添加值<;T、 列表<;L>&燃气轮机;映射到列表<;L>;?
我有一个多重映射Java 如何从地图添加值<;T、 列表<;L>&燃气轮机;映射到列表<;L>;?,java,list,dictionary,Java,List,Dictionary,我有一个多重映射映射映射,我需要一个包含映射中所有值的列表,即列表。使用map.values()我可以得到一个列表,但这不是我想要的 有人知道没有循环的干净解决方案吗?如果您使用Java 8,您可以通过以下方式从所有列表中收集所有值: 如果您使用的是Java8,那么可以使用Streammap.values().Stream().flapMap(l->l.Stream()).collect(Collectors.toList())一个简单的“java列表到列表”搜索将为您找到答案。先搜索再提问。查
映射映射
,我需要一个包含映射中所有值的列表,即列表
。使用map.values()
我可以得到一个列表,但这不是我想要的
有人知道没有循环的干净解决方案吗?如果您使用Java 8,您可以通过以下方式从所有列表中收集所有值:
如果您使用的是Java8,那么可以使用Streammap.values().Stream().flapMap(l->l.Stream()).collect(Collectors.toList())代码>一个简单的“java列表到列表”搜索将为您找到答案。先搜索再提问。查找地图和多重地图:)但我肯定应该学习我的搜索技能!你应该把这个问题标记为一个重复的问题。@DavidPérezCabrera这是一个答案,而不是一个评论。好的,也许它必须讨论java 8需求和流API@DavidP我提到了Java8,并为JDK<8添加了另一种方法。谢谢你指出。
final List<L> list = map
// get a Collection<List<L>>
.values()
// make a stream from the collection
.stream()
// turn each List<L> into a Stream<L> and merge these streams
.flatMap(List::stream)
// accumulate the result into a List
.collect(Collectors.toList());
final List<L> list = new ArrayList<>();
for (final List<L> values : map.values()) {
list.addAll(values);
}