comparable和comparator区别

615 阅读1分钟

1、comparable

  • comparable 是一个接口,标识的含义是,实现这个接口的类可以支持排序操作
  • 需要实现 compareTo 方法
public interface Comparable<T> 
{
    public int compareTo(T o);
}

2、Comparator

  • 同样是一个接口,其表示的含义是,这个某个类本身并不支持排序操作(比如String,没有实现comparable接口,所以不支持排序),但是我们可以创建一个比较器,让他支持排序。
public interface Comparator<T>
 {
    int compare(T o1, T o2);
    boolean equals(Object obj);
 }

用法上

  • comparable 一般用在类定义的时候,让某个类直接支持排序操作
    • comparator 一般用在匿名内部类情况下,比如 Arrays.sort(,)的第二个参数,传入一个比较器