一. Comparable
原类实现Comparable接口,Override其compareTo(Object)方法。
compareTo比较两个对象,返回比较结果。注意应该使用封装的方法,防止超限。比如Integer.compare(a,b)等
重写compareTo方法后,可调用Collections.sort(listA); 进行排序。
写compareTo时,建议同时写equals保持逻辑一致性。而重写equals则必须要重写hashCode方法,否则相同方法的hashCode不同可能导致很多问题。
二.comparator
比较器类实现Comparator接口,Override其compare(Object a, Object b)方法。
实现后,可以利用Collections.sort(listA, new myComparator())方法进行排序。
相比较而言,compareTo方法是内部比较侧重于定义类型原本的顺序,而compare方法是外部比较,侧重于比较类的某些非原本的特征的顺序。