[英]Convert Map<String, NavigableMap<Long, Collection<String>>> to List<String> using Java8
我试图将Map<String, NavigableMap<Long, Collection<String>>>
转换为List<String>
Java 8。
我写了一些代码,但在中间卡住了一些。
userTopics.values().stream().map(
new Function<NavigableMap<Long, Collection<String>>, Collection<String>>() {
@Override
public Collection<String> apply(NavigableMap<Long, Collection<String>> t) {
return null; //TODO
}
}
);
只是flatMap
s ** t :
List<String> values = nestedMap.entrySet()
.stream()
.map(Map.Entry::getValue)
.flatMap(m -> m.entrySet().stream())
.map(Map.Entry::getValue)
.flatMap(Collection::stream)
.collect(toList());
正如霍尔格指出的那样,这更整洁:
List<String> values = nestedMap.values()
.stream()
.flatMap(m -> m.values().stream())
.flatMap(Collection::stream)
.collect(toList());
两个flatMaps
可以做,平放NavigableMap
,然后将Collection
平放在里面。
List<String> result = mapOfMaps.values()
.stream()
.flatMap(v -> v.values().stream())
.flatMap(Collection::stream)
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.