美文网首页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