对自定义的对象属性进行排序,一般是实现Comparable接口或实现Comparator接口
1. Comparable与Comparator接口的区别
参数 | Comparable | Comparator |
---|---|---|
排序逻辑 | 排序逻辑必须在待排序对象的类(pojo类)中 | 排序逻辑单独实现 |
实现 | pojo类实现Comparable接口 | 自定义Comparator接口 |
排序方法 | int compareTo(Object o1) |
int compare(Object o1, Object o2) |
触发排序 | Collections.sort(List) |
Collections.sort(List, Comparator) |
接口所在包 | java.lang.Comparable |
java.util.Comparator |
巧记两个接口:
Comparator:-tor结尾,类似doctor一样代表一个人,可以想象为是一个独立的排序接口个体,因为是个比较器个体,所以需要单独书写,单独调用;
Comparable:-able结尾,able代表xxx能力,描述自身具有的一种能力,是自身自带排序,所以不需要单独写但是要嵌入Bean中,使得Bean具有排序能力