java - 使用 IntStream.range 的部分列表的 Java 总和嵌套属性
问题描述
我有这个基本代码(列表的大小大于 2)。
int delayedSamples = 0;
for (int i = 0; i < list.size() - 2; i++) {
delayedSamples += list.get(i).getChunk().length / size;
}
是否可以用 替换之前的代码IntStream.range
?像:
int delayedSamples = IntStream
.range(0, list.size() - 1)
.mapToObj(i -> list.get(i).getChunk().length / size).... ??
有 lambda 替代品吗?
解决方案
您可以使用:
int delayedSamples = list.stream()
.map(item -> item.getChunk())
.limit(list.size() - 2)
.collect(Collectors.summingInt(chunk -> chunk.length / size));
推荐阅读
- android - Android 中 Fragments 之间的 RoomDB 同步
- sql - 需要帮助为本地 Oracle 19c 数据库注册和设置侦听器,以便我可以远程连接 sqldeveloper
- laravel - 使用 Laravel / Eloquent 进行版本控制
- javascript - Javascript or lodash nested JSON object transformation
- scala - ScalaCheck 生成不同的值列表
- java - 如何以表格格式对齐不同长度的数据
- c++ - 需要帮助实现将用户输入的输入和答案的输出保存在文本文件中的代码
- linux - Docker - EACCES:权限被拒绝,mkdir '/app/node_modules/.cache'
- python - 如何打印完整的 yFinance 数组而不截断?
- python - kivyMD 间歇性 AssertionError