2017-02-16 14 views
0

私はStream<SortedSet<String>>を持っていて、ちょうどStream<String>とします。私はflatMap()を使ってみましたが、ソートセットのフラットストリームができないので動作しませんでした。あなたはコレクションを平らにするために必要なこれらのオブジェクトのコレクションのストリームからすべてのオブジェクトのストリームを得るためにStream.flatMap()の使用方法は?

String productName = "p1"; 
Set<Product> products = new HashSet<>(); 
products.add(new Product(productName)); 
Stream<SortedSet<String>> sortedSetStream = products.stream().map(p -> Util.getProductNames(p)); 

答えて

3

。すべてのコレクションは、ストリームに変換することができます。

Stream<SortedSet<String>> sortedSetStream = products.stream().map(p -> Util.getProductNames(p)); 
Stream<String> ss = sortedSetStream.flatMap(s -> s.stream()); 

または(あなたがメソッド参照を好む場合):

Stream<String> ss = sortedSetStream.flatMap(Collection::stream);