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