Java Integer (java.lang.Integer) 数组除法和其他数学运算

问题描述

我想分割一个 java.lang.Integer 数组并将结果保存到一个 java.lang.Double 数组中。我在互联网上搜索并找不到有用的信息(大部分关于 java.lang.Integer 类的搜索都导致原始类型的 int 操作,如 Division of integers in Java 和这个 Integer division in Java)。

我下面的代码不起作用

    Integer[] FixedDays = {1,2,7,14,30,60,90,180,548,730,1095,1460,1825};
    Double[] Ts = FixedDays / 365.0;

是否有一种快速方法可以对 java.lang.Integer(或更一般的 Number 类和其他基本数学运算)进行除法?是否有一些数学包支持这种 Number 数组操作?

解决方法

您可以使用 Java Streams 非常简洁地做到这一点:

Arrays.stream(FixedDays).map(i -> i / 365.0).toArray();

double[] doubles = Arrays.stream(FixedDays)
                         .map(i -> i / 365.0)
                         .mapToDouble(Double::doubleValue)
                         .toArray();

Double[] Ts = Arrays.stream(FixedDays)
                    .map(i -> i / 365.0)
                    .toArray(Double[]::new);
,

你必须遍历每个元素

Integer[] FixedDays = {1,2,7,14,30,60,90,180,548,730,1095,1460,1825};
Double[] Ts = new Double[FixedDays.length];
        
for(int i = 0; i < FixedDays.length; i++) {
  Ts[i] = FixedDays[i] / 365.0;
}

或者您可以使用流来获得更简洁的解决方案