Double与double数组上的Arrays.asList()。contains()

【字号: 日期:2024-02-27浏览:26作者:雯心
如何解决Double与double数组上的Arrays.asList()。contains()?

您的第一个调用Arrays.asList实际上是返回List<double[]>-将参数自动装箱,因为adouble[]不是T[]…。泛型不允许将基本类型用作类型参数。

如果您要将a double[]转换为List<Double>,则需要手动执行,或使用第三方库来执行。例如:

public List<Double> toList(double[] doubles) { List<Double> list = new ArrayList<>(doubles.length); for (double x : doubles) {list.add(x); } return list;}

请注意,与Arrays.asList数组的任何后续更改不同,它 不会 反映在列表中,反之亦然-它是副本,而不是视图。

解决方法

我有一个双重数组doubleArray1。我尝试了Arrays.asList().contains()如下操作

double doubleArray1 [] = {1D,2D,3D};if(Arrays.asList(doubleArray1).contains(1D)) { System.out.println('hello-1');}

它不打印任何内容。然后我把它做成一个双数组

Double doubleArray1 [] = {1D,3D};if(Arrays.asList(doubleArray1).contains(1D)) { System.out.println('hello-1');}

它打印hello-1。

有人可以解释为什么存在这种差异吗?

相关文章: