Comparator和Comparable的区别

一)Compartor接口是java.util包中的接口,而Comparable是java.lang包中的接口

二)在Compartor接口中包含两个抽象方法,两个方法分别是

int
 
compare(T o1, T o2) 
Compares its two arguments for order.
 


boolean
 
equals(Object obj) 
Indicates whether some other object is "equal to" this comparator. 
compare方法返回的是-1,0,1;分别对应于对象O1小于,等于,大于对象O2

equals方法返回的是一个布尔类型的

Comparable 接口中只有一个方法:

int compareTo(T o)
Compares this object with the specified object for order.
是通过继承了该接口的实例对象对该方法进行调用,返回的值为-1,0,和1

三)什么时候用Comparable,什么时候用Compartor

例如我们向容器中存放数据时,放java封装好的对象,这时候的对象大多数都实现了comparable接口,而如果存放的是我们自己写的类,我们需要对其进行封装,并实现Comparable接口,这样我们就可以使用容器的SORT方法。我们也可以不用实现Comparable接口,通过实现Compartor的类,然后再排序的时候调用即可。

你可能感兴趣的:(Comparator和Comparable的区别)