【发布时间】:2019-01-17 04:44:42
【问题描述】:
我有一个自定义类
class StackInfo {
int start, size, capacity;
}
并验证我拥有的此类信息数组中存在的元素总数
private int numberOfElements(StackInfo[] info) {
int size = 0;
for (StackInfo si : info) {
size += si.size;
}
return size;
}
我尝试使用流将其转换为以下内容:
private int numberOfElements(StackInfo[] info) {
return (int) Arrays.stream(info).map(s -> s.size).count();
// ^^
// to convert long
}
但上述代码的输出在转换后也不正确。
【问题讨论】:
-
为什么不只是
info.length? -
@Kartik 我怀疑在 OP 的情况下这不是迭代方法所做的,而是利用对象内部的属性。
-
@nullpointer ooo 我明白了
标签: java arrays java-8 java-stream