comparable与comparator的区别
Comparable和Comparator的区别
Comparable
Comparable可以认为是一个内比较器,compareTo方法也称为自然比较方法。
实现Comparable接口的类有一个特点,就是这些类是可以和自己比较,如何比较就是利用compareTo方法。
Compatator
Conparator可以认为是一个外比较器。
使用情况:
- 一个对象不支持自己和自己比较(没有实现Comparable接口),但是又想对两个对象进行比较
- 一个对象实现了Comparable接口,但是开发者认为compareTo方法中比较方法并不是自己想要的
两个比较器Comparable和Comparator,后者相对于前者的优点:
1.实现Comparable接口的方式比实现Comparator接口的耦合性要强一点,如果要修改比较算法,后者则不需要对实现类有任何修改。
2.如果compareTo方法内的比较算法不满意,那么可以利用Comparator接口。但是当我们想将实现类的.class文件打包成一个.jar文件提供给开发者的时候,这时候comparator就不太好。