引言:在容器中经常会对容器内的对象进行排序,例如:
1)ArrayList().sort();
2)TreeMap(红黑树) - 添加元素自动排序
如果容器内的数据类型是Integer,String那么不会有什么异常
但如果容器内储存的是 “自定义的对象” 呢?那如何进行排序
解决方法:
1)让容器内的类实现Comparable<T>接口 - T为泛型,此处是容器类型
2)根据自己制定的排序规则实现接口内的compareTo(T stu) 方法,
3)该方法返回值类型是int 类型
当返回 1时,this对象大于传入对象
当返回 0时,this对象小于传入对象
当返回 0时,this对象等于传入对象
例如:
public int compareTo(Student stu){
//覆写 compareTo() 方法,实现排序规则的应用
if (this.score < stu.score){
return -1;
}else if(this.score > stu.score){
return 1;
}else {
if (this.age < stu.age){
return 1;
}else if (this.age>stu.age){
return -1;
}else {
return 0;
}
}