Java 有没有一种简单的方法或函数可以得到数组中所有数字的差、积或商

Java 有没有一种简单的方法或函数可以得到数组中所有数字的差、积或商,java,arrays,Java,Arrays,所以我只想知道是否有一种更简单的方法可以得到一个数组中的所有数字,并比我在这里做的更好地进行减法、加法、乘法和除法:(这里的代码是减去一个数组中的所有数字) 或者有没有一个函数可以让我的生活更轻松,因为我知道有一个函数可以将数组中的所有数字相加,但却找不到其他任何东西。我认为将初始值设置为numArray[0]不是一个好主意,如果它是一个单独的变量,代码可能会更干净。 不过,如果你坚持: @Test public void diffArray() { Intege

所以我只想知道是否有一种更简单的方法可以得到一个数组中的所有数字,并比我在这里做的更好地进行减法、加法、乘法和除法:(这里的代码是减去一个数组中的所有数字)


或者有没有一个函数可以让我的生活更轻松,因为我知道有一个函数可以将数组中的所有数字相加,但却找不到其他任何东西。

我认为将初始值设置为
numArray[0]
不是一个好主意,如果它是一个单独的变量,代码可能会更干净。 不过,如果你坚持:

    @Test
    public void diffArray() {
        Integer [] numArray = {10,1,2,3};
        Vector<Integer> v = new Vector<>(Arrays.asList(numArray));
        Integer diff = v.stream().skip(1).reduce(numArray[0],(a,b)->a-b);
        org.hamcrest.MatcherAssert.assertThat("", diff == 4);
    }

@测试
公共void diffArray(){
整数[]numArray={10,1,2,3};
向量v=新向量(Arrays.asList(numArray));
整数diff=v.stream().skip(1).reduce(numArray[0],(a,b)->a-b);
org.hamcrest.matcherasert.assertThat(“,diff==4);
}

清洁剂?我认为你的代码很干净

然而,一种替代方法可能是使用流:

double[] numArray = { 17.0, 13.0, 36.5, 7.5, 3.2 };
double result = DoubleStream.of(numArray)
    .skip(1)
    .reduce(numArray[0], (a, b) -> a - b);
System.out.println(result);

这里发生了什么?我们对原语
double
使用流专门化,
DoubleStream
,以便遍历
double
数组的元素。我们跳过第一个元素,因为所有后续元素都应该从第一个元素中减去。然后我们执行a,以数组的第一个元素作为初始值,并从之前的结果中减去后续元素。

使用
双流
?我假设努马拉岛是一个双[]。然后你的差、积或商可以用
reduce
计算出来。这已经很简单了。如果你想让生活更轻松,代码可能不是答案。求和和和积可以用单行流方法完成,因为它们是常见的操作,但我认为获得“列表的差”或“列表的商”并不常见。你当前的实现是所有人都能做到的最好的。
double[] numArray = { 17.0, 13.0, 36.5, 7.5, 3.2 };
double result = DoubleStream.of(numArray)
    .skip(1)
    .reduce(numArray[0], (a, b) -> a - b);
System.out.println(result);