二者的区别
compareable接口:(自然排序)
如果一个类的元素要想要能够进行自然排序,就必须实现自然排序接口Compareable,重写compareTo(Object o)方法,拿当前对象和o进行比较大小(大返回1,相等返回0,小返回-1)
典型实现案例:
BigDecimal、BigInteger 以及所有的数值型对应的包装类:按它们对应的数值大小进行比较
Character:按字符的 unicode值来进行比较
Boolean:true 对应的包装类实例大于 false 对应的包装类实例
String:按字符串中字符的 unicode 值进行比较
Date、Time:后边的时间、日期比前面的时间、日期大compareator接口:(外部比较器)
集合中需要排序的对象无必需实现Compareator接口,可在外部重写compare(Object o1,Object o2)方法,拿o1和o2进行比较大小(大返回1,相等返回0,小返回-1)
重点介绍下Compareator
首先他是函数式接口,可以通过lambda进行简化写法 ,其次是之所以提供比较器排序接口,是因为有时需要对同一对象进行多种不同方式的排序,这点自然排序 Comparable 不能实现。