Java sum nested property of partial list using IntStream.ran



我有这个基本代码(列表的大小大于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).... ??

有没有替代品?

您可以使用:

int delayedSamples = list.stream()
.map(item -> item.getChunk())
.limit(list.size() - 2)
.collect(Collectors.summingInt(chunk -> chunk.length / size));

最新更新