使用Java8将Map <String,NavigableMap <Long,Collection >>转换为List

我试图将Map<String, NavigableMap<Long, Collection>>转换为List Java 8。

我写了一些代码,但在中间卡住了一些。

 userTopics.values().stream().map( new Function<NavigableMap<Long, Collection>, Collection>() { @Override public Collection apply(NavigableMap<Long, Collection> t) { return null; //TODO } } ); 

只是flatMap s ** t :

 List values = nestedMap.entrySet() .stream() .map(Map.Entry::getValue) .flatMap(m -> m.entrySet().stream()) .map(Map.Entry::getValue) .flatMap(Collection::stream) .collect(toList()); 

正如霍尔格指出的那样,这更整洁:

 List values = nestedMap.values() .stream() .flatMap(m -> m.values().stream()) .flatMap(Collection::stream) .collect(toList()); 

两个flatMaps将完成,平放NavigableMap ,然后将Collection平放在里面。

 List result = mapOfMaps.values() .stream() .flatMap(v -> v.values().stream()) .flatMap(Collection::stream) .collect(Collectors.toList());