相同点:
- 两个都是接口
- 都是实现比较的
- 返回值都是a>b返回正整数,a=b返回0,a<b返回负数。
不同点:
- comparable位于java.lang包下面,而comparator位于java.util包下
- comparable实现的是自连接(比如String类),就是将自己和指定的一个对象进行比较,而comparator是另外的一个类的一个方法将两个不相关的对象进行比较,很显然comparator的耦合性比comparable的耦合性要低。
在一些集合里面要对类进行排序,而这些类在设计的时候没有考虑到要进行排序,那么这时候我们唯一的办法就是传递一个comparator的接口给他让他进行比较。