如何将Map<Object1, List<Object2>>
的值转换为List<Object2>
的最佳(高效且简单)方式。我应该简单地遍历所有条目并将adAll
个项目迭代到列表中吗?
答案 0 :(得分:10)
这是第三种方式,因此您不需要创建一个ArrayList,这是您实际要求的。这是使用流的正确方法,因为您不会更改任何对象的状态。
List<Object2> values = myMap.values()
.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
答案 1 :(得分:0)
刚刚找到它:
List<Object2> list = myMap.values()
.stream()
.flatMap(item -> item.stream())
.collect(Collectors.toList()));
答案 2 :(得分:0)
使用addAll的一个选项。
List<Object2> list = new ArrayList<>();
myMap.values().forEach(list::addAll);