当前位置: 首页 > 面试题库 >

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

姚臻
2023-03-14
问题内容

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

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

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

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

它打印hello-1

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


问题答案:

您的第一个调用Arrays.asList实际上是返回List<double[]>-将参数自动装箱,因为a
double[]不是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数组的任何后续更改不同,它 不会 反映在列表中,反之亦然-它是副本,而不是视图。



 类似资料:
  • 问题内容: 当我尝试将double数组转换为Double arrayList时,出现以下错误: 线程“主”中的异常java.lang.ClassCastException:[无法将D强制转换为java.lang.Double 下面是我的代码。 我正在将此列表与另一个列表进行比较,并将结果分配给另一个double变量。 请让我知道此错误的原因。 问题答案: las,不适用于原语。Apache com

  • 问题内容: 我知道这是一个包装类,它包装数字。今天,我看到了另一个主要区别: 我真奇怪! 因此,如果每次使用,我们都必须执行以下操作: 我无法解释为什么Double直接将比较做错了。请为我解释。 问题答案: 而在技术上两个不同的对象和运营商只比较引用。 更好,因为它比较值而不是引用。但是仍然不理想。直接比较浮点值应始终将一些误差(ε)考虑在内()。 注意: 这里的比较会产生,但是比较复杂(内部缓存

  • 描述 (Description) C库函数double fmod(double x, double y)返回x的余数除以y 。 声明 (Declaration) 以下是fmod()函数的声明。 double fmod(double x, double y) 参数 (Parameters) x - 这是具有除法分子iex的浮点值 y - 这是具有除法分母iey的浮点值 返回值 (Return Va

  • 描述 (Description) C库函数double pow(double x, double y)将x提升为y的幂,即x y 。 声明 (Declaration) 以下是pow()函数的声明。 double pow(double x, double y) 参数 (Parameters) x - 这是浮点基值。 y - 这是浮点功率值。 返回值 (Return Value) 此函数返回将x提升

  • 描述 (Description) C库函数double modf(double x, double *integer)返回小数部分(小数点后的部分),并将整数设置为整​​数分量。 声明 (Declaration) 以下是modf()函数的声明。 double modf(double x, double *integer) 参数 (Parameters) x - 这是浮点值。 integer -

  • 描述 (Description) C库函数double atan2(double y, double x)根据两个值的符号返回y/x弧度的反正切,以确定正确的象限。 声明 (Declaration) 以下是atan2()函数的声明。 double atan2(double y, double x) 参数 (Parameters) x - 这是表示x坐标的浮点值。 y - 这是表示y坐标的浮点值。