erykzabujca:
私はそのような構造を持っているので、
List<Object1> list1
class Object1{
private List<Object2> list2
}
class Object2{
private List<Object3> list3
}
そして、私はすべてのObjects3インスタンスの数を取得する必要があります。それはかなり私のために混乱していますので、私は、java-8およびストリームに新しいですが、私はそのようになめらかを実行しようとしました。
Integer count =
list1
.parallelStream()
.reduce(0,(sum, q) -> q.getList2()
.forEach()
.reduce(0,(sum2, q2) -> sum2 + q2.getList3().size()));
私も近いのでしょうか?
Ousmane D .:
私はあなたのストリームAPIに新しいしていることを考えると、あなたを責めませんが、あなたのアプローチがovercomplicatedています。
私は個人的にシンプル&読みやすくするために、このアプローチで行くと思います。
list1.stream() // Stream<Object1>
.flatMap(s -> s.getList2().stream()) // Stream<Object2>
.flatMap(s -> s.getList3().stream()) // Stream<Object3>
.count(); // return the count of all Object3 instances