Comparator、Comparable
首先,两个都是接口,没有区别。
class LoaderMy implements Comparator{
@Override
public int compare(Object o1, Object o2) {
return 0;
}
}
class P2 implements Comparable{
@Override
public int compareTo(Object o) {
return 0;
}
}
通过实现可以发现, Comparator 需要两个参数,Comparable 只需要一个参数。
说明:
1. Comparator 外部比较类。即和要比较的对象进行分类,解耦操作。
Comparable 内部比较类。需要在对象中实现Comparable 接口中的compareTo 方法
2. Comparator 使用的时候,可以将给别人,例如下图 arrays.sort(arr, Comparator 的实现类)。
Comparable 需要调用 对象.compareTo(要比较的对象) 进行对比。
3. Comparator 解耦,没有侵入性。
Comparable 高耦合,侵入性强。