简述Comparable和Comparator两个接口的区别

Comparable:强行对实现它的每个类对象进行整体排序。这种排序我们一般把它称之为自然排序,类的compareTo方法被称之为它的自然比较方法。只能在类中实现compareTo方法一次,不能经常修改类的代码实现自己想要的排序。实现此接口的对象列表(和数组)可以通过Collections.sort()(和Arrays.sort())进行自动排序,对象可以用作有序映射中的键或者有序集合中的元素,无需指定比较器。

Comparator:强行对某个对象进行整体排序。可以将Comparator传递给sort()方法(如Collections.sort()后者Arrays.sort()),从而允许在排序顺序上实现精确控制。还可以使用Comparator来控制某些数据结构(有序的set或者是有序的映射)的顺序,或者为那些没有自然顺序的对象Collection提供排序。

上一篇:Java集合Collections


下一篇:Python中collections模块的namedtuple的使用