Java 中的比较与排序:Comparable、Comparator 及枚举类型详解
1. 条件表达式与 compareTo 方法的潜在问题
在 Java 中,条件表达式根据接收者与参数的大小关系返回 -1、0 或 1。例如,在 Integer 类实现 Comparable<Integer> 接口时,可能会有如下错误实现:
class Integer implements Comparable<Integer> {
...
public int compareTo(Integer that) {
// bad implementation -- don't do it this way!
return this.value - that.value;
}
...
}
这种实现方式在出现溢出时会给出错误结果。比如,当比较一个大的负值和一个大的正值时,差值可能会超过 Integer.MAX_VALUE 。
2. 集合中的最大值查找
我们可以使用 Comparable<T> 接口来查找集合中的最大元素。以下是 Collections 类中查找非空集合最大元素的简化代码:
public static <T extends Comparable&
超级会员免费看
订阅专栏 解锁全文
40

被折叠的 条评论
为什么被折叠?



