题目来源:https://zhuanlan.zhihu.com/p/86536581
java面试清单
**java基础 **
Comparable和Comparator接口是干什么的,其区别
Comparable接口
从Comparable接口中的代码,可以包含一个内部函数compareTo(),因此但凡是继承了接口的类,都需要实现这个方法。
Comparable对这个接口的每一个类对象都强加了一个整体排序。这个排序被称为类的自然排序,类的这个compareTo()就被称为其自然比较方法。
package java.lang;
import java.util.*;
public interface Comparable<T> {
public int compareTo(T o);
}
Collection.sort和Arrays.sort()可以自动对实现这个接口的对象进行列表或者数组排序。
Comparator
Comparator是一个比较器接口,被比较的类不需要直接实现它。
package java.util;
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}
Comparable和Comparator接口的区别
1 comparalbe在java.lang
comparator在java.util下
2 comparable实现通过在集合内部实现该结构的compareTo()方法实现的排序
comparator是在集合外部实现的排序,是一个专用的比较器。当这个对象不支持自比较或者自比较函数不满足要求时,可以写一个比较器来完成两个对象之间大小的比较