You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Java数组的指定索引区间求和?基于Stream的实现疑问

解决Java Stream计算数组指定索引区间元素和的问题

嘿,要计算数组索引[0]到[3]区间内的元素和,用Java Stream有两种很实用的方式,我给你拆解一下:

方法一:用limit()快速取前N个元素(适合从起始索引开始的场景)

如果你的区间是从索引0开始,直接用limit()截断Stream到指定长度就行——因为索引0到3刚好是前4个元素:

import java.util.stream.*;

int[] array = {1,2,3,4,5};
// 取前4个元素(对应索引0-3)求和
int sum = IntStream.of(array).limit(4).sum(); // 结果为10

方法二:用IntStream.range()精准指定索引范围(通用场景)

如果以后需要计算任意索引区间的和,比如索引[2]到[4],这种方法更灵活。需要注意的是range()的结束参数是排他的,所以要取到索引3的话,结束值得写4:

import java.util.stream.*;

int[] array = {1,2,3,4,5};
int start = 0;
int end = 4; // 包含索引3,所以结束值设为4
int sum = IntStream.range(start, end)
                   .map(index -> array[index]) // 把索引映射为数组元素
                   .sum(); // 结果同样是10

小提醒

  • 一定要确保你的索引区间在数组的有效范围内,不然会抛出ArrayIndexOutOfBoundsException哦;
  • 如果是闭区间[start, end],记得把range()的第二个参数设为end + 1,因为它是左闭右开的。

内容的提问来源于stack exchange,提问作者Broather

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:09:15