java comparable接口怎么用?内部比较器用法详解
作者:nhhkh.
还在为Java对象排序发愁?本文详解Comparable内部比较器的用法,教你重写compareTo方法实现数值、字符串字段的升序降序,并区分Comparator外部比较器,掌握默认排序规则,让Collections.sort()自动排序更轻松
java.lang.Comparable是内部比较器,用于给自定义类设定默认排序规则,让该类对象可直接被 Collections.sort()、Arrays.sort() 自动排序
一、接口码源
public interface Comparable<T>{
int comparableto(T o);
}(1)仅含一个抽象类,必须重写。
(2)返回值规则
- 返回 负数:
this排在o前面 - 返回 0:两个对象视为相等,顺序不变
- 返回 正数:
this排在o后面
二、用法
- 自定义类实现接口:
public class 类名 implements Comparable<类名> - 重写唯一方法
compareTo(同类对象) - 存入 List 集合,调用
Collections.sort(集合)自动排序
三、常见的排序方法
(1)数值字段排序
1.升序
@Override
public int compareTo(Ship o) {
return this.id - o.id;
}2.降序
return o.id - this.id;
(2)字符串字段排序
// 名字字典序升序 return this.name.compareTo(o.name);
不能直接相减,调用字符串自带的比较方法
四、与Comparator的简单区分
- Comparable:内部比较器,写死在实体类,默认排序
- Comparator:外部比较器,临时定义,不修改实体类
五、总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
