对象比较
Object.equals
介绍
Object
类的方法- 默认情况下,比较的是对象的引用地址
- 通常重写
equals
方法,比较对象的内容
Comparable
介绍
java.lang
- 实现对象自定义比较
方法
方法 | 描述 |
---|---|
int compareTo(T o) |
小于指定对象返回负数,等于指定对象返回 ,大于指定对象返回正数 |
使用
- 实现
Comparable
接口 - 重写
compareTo
方法
Comparator
介绍
java.util
- 外部比较器,不需要修改对象的定义
- 可以定义多个排序规则
方法
方法 | 描述 |
---|---|
int compare(T o1,T o2) |
对象1小于对象2返回负数,对象1等于对象2返回 ,对象1大于对象2返回正数 |
Comparator与Comparable
特性 | Comparable |
Comparator |
---|---|---|
作用 | 定义对象的自然排序规则 | 定义外部比较规则,可以有多个排序标准 |
修改对象类 | 类需要实现Comparable 接口 |
无需修改对象类 |
排序规则 | 只能有一个排序规则 | 可以定义多个不同的排序规则 |
场景 | 对象类需要自定义排序规则时 | 对象类需要多个自定义排序规则或对象类不能修改时 |
使用方式 | 集合工具类的sort 方法 |
创建比较器对象 |