2017-01-03 12 views
0

を減らすためにループを減らすために、私は次の文があります。JavaのストリームAPI - どのように

Function<Stream<Supplier<Collection<? extends User>>>, Stream<User>> userStreamSupplier = 
    supStream -> { 
    ArrayList<User> list = new ArrayList<>(); 
    supStream.forEach(sup -> list.addAll(sup.get())); 
    return list.stream(); 
}; 

はそれがスマートstream.reduce操作(または他の凝集による内部ラムダのループを変換することが可能です)?私は様々なアプローチを試みましたが、失敗しました。

Greetings、 JG。

答えて

5

代わりflatMapを使用することができる:

supStream -> supStream.flatMap(supp -> supp.get().stream()); 

は、各要素に提供されるマッピング関数を適用することによって生成されるマッピングされたストリームの内容と、このストリームの各要素を置き換えるの結果からなるストリームを返し。

関連する問題