我有一个数组,我试图对数组的一部分求和。 例如,我的数组是[1,2,3,4,5,6],但我只想将值添加到第三个元素 [1,2,3]。我想我以前用过一种涉及分号的方法,但我不太记得了。 类似于int sum = Sum (arr[0]:arr[2])的东西,但我不确定。类似的东西存在吗? 我想我几年前在Python中用过它。
interface IntRangeSum {
static public int apply(int[] a, int start, int end) {
return Arrays.stream(a, start, end).sum();
}
}
int[] a = {1,2,3,4,5};
int result = IntRangeSum.apply(a, 2, 4);
System.out.println(result);
5条答案
按热度按时间vhmi4jdf1#
没有内建的方法来对子数组求和。最简单的方法是在子数组上进行流处理:
其中,0和3是起始和结束索引(起始索引包括起始索引,结束索引包括结束索引)
gudnpqoy2#
扩展Eritrean's优秀的答案你可以用一个有意义的名字创建一个接口,然后把它藏在你的库里。
印刷品
kqqjbcuj3#
**输出:**6
据我所知,Java没有Python中的切片表示法,但这虽然更冗长,但应该可以达到目的。
t98cgbkg4#
您可以使用java.util.Arrays.copyOfRange方法的适当变体来创建和操作切片。
或者使用循环:
r55awzrz5#
另一种选择是使用
Arrays.stream()
+IntStream.limit()
的组合: