2016-07-29 118 views

回答

2
List<String> distinct = aHierarchicClassStructure.stream() 
               .flatMap((t) -> t.stream()) 
               .flatMap((u) -> u.stream()) 
               .distinct() 
               .collect(Collectors.toList()) 

您可以使用方法引用,所以(t) -> t.stream将成为Collection::stream()List::stream()如果你的数据结构列表。

+4

可能它应该是'Collection :: stream'或'Arrays :: stream'而不是't - > t.stream'。 – fabian

+0

@fabian我倾向于使用集合的实际类型(例如List :: stream()),这在这里是未知的。 Collection :: stream()也很好。 – ekaerovets

+0

这很好用。我在'.map(List :: stream).reduce(Stream.empty(),Stream :: concat)'之前尝试过产生堆栈溢出。 – user3486983

相关问题