如何最好(高效简单)地将 Map<Object1, List<Object2>>
的值转换为 List<Object2>
?我应该只需遍历所有条目并将其 addAll
到列表中吗?
如何最好(高效简单)地将 Map<Object1, List<Object2>>
的值转换为 List<Object2>
?我应该只需遍历所有条目并将其 addAll
到列表中吗?
这是第三种方法,所以您不需要创建一个ArrayList,这就是您实际要求的。 这是使用流的正确方式,因为您没有更改任何对象的状态。
List<Object2> values = myMap.values()
.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
刚刚找到了它:
List<Object2> list = myMap.values()
.stream()
.flatMap(item -> item.stream())
.collect(Collectors.toList()));
使用addAll的一种选择。
List<Object2> list = new ArrayList<>();
myMap.values().forEach(list::addAll);