有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在列(数量)中,我也有一些double和N/a类型的值。如何使用比较器对两者进行排序?

在一列(数量)中,我有一些类型为double和N/a的值

在我的comparator类比较方法中,这是下面提到的编码

   if(double1 == double2) {
        return 0;
    }

    // We know that both aren't null, so if only long 2 is null, 1 > 2
    if(double2 == null) {
        return 1;
    }

    // We know that both aren't null, so if only long 1 is null, 1 < 2
    if(double1 == null) {
        return -1;
    }

    // Nulls are handled, use the native compare
    return double1.compareTo(double2);

double1和double2为Double类型

它给出了一个例外:java。lang.NumberFormatException:对于输入字符串:“N/A”

请给我答案


共 (1) 个答案

  1. # 1 楼答案

    我猜(如果不看你是如何使用这些双精度的话,我真的不能说)你希望持有一个不存在的值,一个可能存在的值

    为此,我想说你用^{}构造你的Double,如下所示:

    Double double1 = new Double(Double.NaN);
    

    我不确定NaN是否是为排序操作定义的——它没有复杂的顺序,因为它不是一个数字。您可能希望使用辅助结构,例如List<Double>,首先梳理不是数字的Double,然后将它们放在第一位。然后,您可以对剩余的Double进行排序