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 楼答案
我猜(如果不看你是如何使用这些双精度的话,我真的不能说)你希望持有一个不存在的值,一个可能存在的值
为此,我想说你用^{} 构造你的
Double
,如下所示:我不确定NaN是否是为排序操作定义的——它没有复杂的顺序,因为它不是一个数字。您可能希望使用辅助结构,例如
List<Double>
,首先梳理不是数字的Double
,然后将它们放在第一位。然后,您可以对剩余的Double
进行排序