2016-07-29 65 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

相關問題