gpt4 book ai didi

java - 我可以使用 compareTo 对整数和 double 值进行排序吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:02 26 4
gpt4 key购买 nike

我可以使用 compareTo 对整数和 double 值进行排序吗?我的系统给我一个错误,我无法在原始类型 int 上调用 compareTo(int)。有什么想法吗?

代码:

public int compare(Object o1, Object o2) {  
Record o1C = (Record)o1;
Record o2C = (Record)o2;
return o1C.getPrice().compareTo(o2C.getPrice());
}

class Record
public class Record {
String name;
int price;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}

最佳答案

好吧,编译器是对的:) 你不能直接调用compareTo。但是,根据您使用的 Java 版本,您可以使用 Integer.compare (在 1.7 中引入)和 Double.compare (1.4引入)。

例如:

return Integer.compare(o1C.getPrice(), o2C.getPrice());

如果您不在 1.7 上并且仍想使用内置方法,您可以使用:

Integer price1 = o1C.getPrice();
Integer price2 = o2C.getPrice();
return price1.compareTo(price2);

...但这会使用不必要的装箱。考虑到对大型集合进行排序可以执行相当多的比较,这并不理想。在您准备好使用 1.7 之前,您可能值得自己重写 compare。非常简单:

public static int compare(int x, int y) {
return x < y ? -1
: x > y ? 1
: 0;
}

关于java - 我可以使用 compareTo 对整数和 double 值进行排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com