Squ*_*eez 1 java java-8 java-stream
我有以下结构:
class A {
List<B> bs;
}
class B {
List<C> cs;
}
class C {
List something.
}
Run Code Online (Sandbox Code Playgroud)
我List的A班,我要进去的所有元素的SUMM something名单.我试着做以下事情:
totalCount = as
.stream()
.map(a -> a.getBs()
.stream()
.mapToInt(b -> b.getSomething().size())
.sum());
Run Code Online (Sandbox Code Playgroud)
但那不编译.我的错误在哪里?
编译错误是:
Error:(61, 21) java: incompatible types: no instance(s) of type variable(s) R exist so that java.util.stream.Stream<R> conforms to java.lang.Integer
有很多方法可以获得这个结果,一种可能的方法是平放所有内容并计算结果:
A a = ..;
a.bs.stream()
.flatMap(aa -> aa.cs.stream())
.flatMap(bb -> bb.something.stream())
.count();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |