相同点
都是用来对象之间的比较
不同点
1、Comparable:在java.lang包下
Comparator:在java.util包下
2、Comparable:需要重写compareTo(Object o)方法
Comparator:需要重写compare(Object o1, Object o2)方法
3、comparable:①是内在比较器,该类的对象可以直接相互比较this.compareTo(this),②可以直接使用Collections.sort方法排序
Comparator:①是外在比较器,没有实现comparable还想实现比较排序可以compare(o1,o2)
4、omparator 是典型的策略模式
5、Comparable和Comparator存在,Comparator优先级高
6、Comparable:需要修改原先的实体类,是一种自然的排序
Comparator:不用修改原先的类而实现的比较器,实际应用广