我们需要对对象进行排序,但是对象不是像基本类型的那样,是具体的数值
如果要对对象比较,需要实现两个接口的任意一个即可 Comparable 可比较接口 Comparator 比较器接口
String包装类等等、实现了Comparable接口,重写CompareTo()方法
重写compareto类比equals方法重写,获取属性的内容进行比较
自然排序
- this.field > obj.field 返回 +
- this < obj.field 返回 -
- this.field == obj.field 返回0
自定义类排序同样实现实现Comparable接口,重写CompareTo()方法
自定义排序
自定义类具有多个属性
当主判断的属性相同,无法比较时
可以叠加多个属性判断,也就是相同int 比double,相同char比String,
- this.field == obj.field 再判断 this.field2 和 obj.field2
Comparator 定制排序,比较器
重写compare方法,比较对象大小
正数 o1 > o2
负数 o1 < o2
0 o1 == o2
Comparable & Comparator区别?
Comparable 适合设置固定的排序方式
Comparator 用来临时自定义排序,排序方式更灵活