comparable
comparable可以认为是一个内部比较器,其中有一个compareTo(T t)的方法需要实现。
实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。
如果开发者加入Collection的对象想要Collections的sort方法帮你自动进行排序的话,那么这个对象必须实现Comparable接口。
compareTo方法的返回值是int,有三种情况:
1、比较者大于被比较者(也就是compareTo方法里面的对象),那么返回正整数
2、比较者等于被比较者,那么返回0
3、比较者小于被比较者,那么返回负整数
comparable接口很多类实现这个接口,提供该类对象之间的比较的默认实现,如String,Integer等。
comparator
comparator是一个外部比较器,其中只有一个compare(T t1,T t2)的方法需要实现
使用这个接口的两种原因:第一,一个对象不支持自己和自己的比较(没有实现comparable的接口),但是想对这两个对象进行比较。第二,一个对象虽然实现了Comparable接口,但是其中的compareTo方法的比较不是自己想要的。所以实现comparator接口,并重写方法compare来进行两个类的比较。