相同点:都是用于比较排序。
不同点:
1、接口所在的包不同:comparable:java.lang.Comparable;Comparator:java.util.Comparator
2、比较逻辑不同:Comparable:内部比较器,必须在类上实现该接口通过固定字段进行比较;Comparator:是外部比较器,在方法中通过lambda表达式实现接口就可以了。
3、排序方法不同:Comparable重写方法compareTo(T o);Comparator重写方法compare(T o1, T o2)
4、在Collections.sort()中使用不同:一个参数,默认是Comparable自然排序,二个参数,需要传入Comparator外部排序
5、排序规则数量限制不同:Comparable唯一字段排序,Comparator可以有多个字段排序