您的第一个调用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。
有人可以解释为什么存在这种差异吗?