当前位置: 首页 > 知识库问答 >
问题:

java - 将原始双精度数组转换为集合

后烨煜
2023-03-14

我想有一个浮子阵列(双打)

double[] myArr = {0, 0, 95, 9.5, 19, 610.5, 1217, 5.14, 4038.66, 10.23, 7961, 828, 199858, 37325.3};

然后我有一个返回最大值的函数

    public static void getMaxArrVal(double[] myArr) {           

        myCol = /* Code to convert myarr to collection should come here */
        System.out.println(Collections.min(myCol ));
        System.out.println(Collections.max(myCol ));
    }
}

getMaxArrVal(myArr);

我在将基元数据类型转换为集合时遇到问题。我尝试将其转换为双列表,尝试将myArr转换为char / String来检查一些事情,但显然没有任何效果。

我一直看到原始数据类型的编译错误。我也尝试了< code>Double,但是没有成功。

我怎么可能将数组转换为集合

共有3个答案

宗政浩慨
2023-03-14
double[] primitives = new double[] { 1.0, 2.0, 3.0};
List<Double> objects = new ArrayList<>();
for(double num : primitives) {
    objects.add(num);
}
昌招
2023-03-14

番石榴有很好的解决方案

Lists.newArrayList(double[])
公良昕
2023-03-14

这与Java 8配合得很好:

Arrays.stream(myArr).boxed().collect(Collectors.toCollection(ArrayList::new));

当然,可以使用任何Collection来代替ArrayList。我这里的代码实际上可以简化为Collectors.toList()

此外,正如@nukie的回答中所指出的,< code>DoubleStream有自己的< code>min()和< code>max()方法,使转换变得无用。只需使用通过< code > arrays . stream(myArr)创建的两个流,并调用这些方法。

 类似资料:
  • 我试图得到一个double(由两个int的分数得到)作为我下面函数的返回值。 但结果总是错的,我得到的价值如: 预期结果应介于和 我的代码有什么问题! 谢谢

  • 问题内容: 我有一个浮点数组,我想将其转换为Java中的双精度数组。我知道迭代数组并创建一个新数组的明显方法。我希望Java在希望与double []一起工作的地方能够平稳地消化float [] …,但不能与此一起工作。进行这种转换的优雅,有效的方法是什么? 问题答案: 基本上 , 必须进行每个值的转换。两种数组类型之间没有隐式转换,因为在JITting之后用于处理它们的代码将有所不同- 它们具有

  • 我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。 我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。

  • 问题内容: 我有一个双,其值是10,000,000.00(千万)。我必须将其转换为。当使用该方法时,我会得到 “ 1.0E7”,它遵循规范是正确的。不幸的是,我需要“ 10,000,000.00”(或等价的语言,具体取决于语言环境)。 如何做到这一点? 问题答案: 尝试之一 NumberFormat http://java.sun.com/javase/6/docs/api/java/text/N

  • 问题内容: 为了将字节数组转换为双精度型,我发现了这一点: 但是我找不到将双精度型转换为字节数组的任何东西。 问题答案: 甚至更简单

  • 我正在创建一个基本的GUI,它接受用户输入的金额,并用预先存在的金额减去它。然而,它不会让我运行下面的一个,因为我得到了一个字符串不能转换为double的错误。这里使用parseInt方法不起作用,因为im使用getText方法。