//able结尾的接口基本上都是表明该类的实现类都有对应的能力

Comparable接口表明该类的实现类"具有排序能力"(内部比较器)

该接口的实现类必须实现 public int compareTo(T o)方法以供Arrays类中的 public static void sort(Object[] a)--->legacyMergeSort()--->mergeSort()方法使用,

java内置数据类型中基本都实现了该方法,所以我们可以直接使用该方法进行内置数据类型的比较

而对于自定义数据类型,则需要实现comparable接口手动编写public int compareTo(T o)方法

 

//tor结尾的接口基本上都是表明该类是辅助类(只实现单一功能) em:Iterator为迭代器 Comparator为比较器

Comparator接口表明该类是个比较器类(外部比较器)

该接口的实现类必须实现int compare(T o1, T o2)方法以供Arrays中的public static <T> void sort(T[] a, Comparator<? super T> c)方法使用;

使用方法:将自定义比较器和要排序的数组传进去即可

作用:

1.对于自定义数据类型来说用户可以自己定义复杂的且可通用的判断逻辑,使得该判断器可以匹配简单的对象,防止重复劳动.

2.解耦:该比较器类独立于实体类

3.方便:方便于应对各种排序规则