1.Comparable
数据排序:JavaApi中,工具类都有排序能力,归其原因,其实现了这两个接口之一。
而自定义类要想有排序能力,需要实现Comparator这个接口或Comparale接口;
并重写conparato方法;
Java官方类大部分都实现了Serializble接口,故大部分类都可序列化与反序列化,但你写的不能。
Java官方类大部分都重写超类的toString方法,故大部分类都直接输出用信息,但你写的不能。
Java官方类大部分都重写超类的hashCode方法和equals方法,故大部分类都值比较,但你写的不能。
Java官方类大部分都实现了Comparable接口,故大部分类都可排序,但你写的不能。
如上问题,都是在使用javaapi时,未实现这两个接口的原因:
N种写法:
正序:
逆序:
多维:
对list集合中的狗完成,类似 order by name , age, gender desc的java排序
@Override
public int compareTo(Dog other) {
if (!this.name.equals(other.name)) {
return this.name.compareTo(other.name);
}
if(this.age!=other.age){
return this.age-other.age;
}
if(this.gender!=other.gender){
return ~(this.gender-other.gender);
}
return 0;
}
Comparator
略