【问题标题】:Java Integer (java.lang.Integer) Array division and other math operationsJava Integer (java.lang.Integer) 数组除法等数学运算
【发布时间】:2021-06-08 12:36:47
【问题描述】:

我想分割一个 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 类和其他基本数学运算。)?是否有一些数学包支持这种数字数组操作?

【问题讨论】:

    标签: java math integer division


    【解决方案1】:

    您可以使用 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);
    

    【讨论】:

      【解决方案2】:

      你必须遍历每个元素

      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;
      }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-20
        • 2014-07-22
        • 1970-01-01
        • 2018-09-26
        • 1970-01-01
        相关资源
        最近更新 更多