Comparable是一个接口,它有一个compareTo()方法,用于定义对象之间的自然顺序。实现了Comparable接口的类可以直接调用Collections.sort()方法对对象进行排序。
Comparator也是一个接口,它有一个compare()方法,用于定义对象之间的定制顺序。实现了Comparator接口的类可以创建多个比较器,用于不同的排序需求。在调用Collections.sort()方法时,可以通过传入Comparator对象来实现定制排序。
总结起来,Comparable是对象自己实现的排序规则,而Comparator是由外部实现的排序规则。Comparable定义的排序规则是对象的自然排序,而Comparator定义的排序规则是按照外部需求定制的排序。