美文网首页Java 杂谈
Java Comparable 与 Comparator

Java Comparable 与 Comparator

作者: 聪明的奇瑞 | 来源:发表于2018-06-11 01:06 被阅读44次

Comparable

  • Comparable 是排序接口,若一个类实现了该接口,则意味着该类支持排序
  • 实现了该接口的类,可以通过 Collections.sort 或 Arrys.sort 方法进行排序。并且该类的对象在作为 TreeMap、TreeSet 的元素时,不需要指定比较器
  • 该接口仅包含了一个 compareTo 方法
public interface Comparable<T> {
    public int compareTo(T o);
}
  • 假设通过 x.compareTo(y) 来比较 x 和 y 大小
    • 返回负数意味着 x 比 y 小
    • 返回 0 则意味着相等
    • 返回 正数 意味着 x 大于 y

Comparator

  • Comparator 是比较器接口,假设某个类没有实现 Comparable 接口,但又需要排序,那么可以建立一个该类的比较器来进行排序
  • 该接口包含了两个方法,若一个类要实现 Comparator 接口,那么必须实现该 compare 方法,但可以不实现 equals 方法(这是因为任何类都继承自 Object,默认都是已经实现了 equals 方法的)
public interface Comparator<T> {

    int compare(T o1, T o2);

    boolean equals(Object obj);
}
  • 假设通过 compare(T o1, T o2) 比较 o1、o2 大小
    • 返回负数,意味着 o1 比 o2 小
    • 返回零,意味着 o1 等于 o2
    • 返回正数,意味着 o1 大于 o2

相关文章

网友评论

    本文标题:Java Comparable 与 Comparator

    本文链接:https://www.haomeiwen.com/subject/axcceftx.html