基于JAVA的自然排序与自定义排序
1.自然排序需要类去继承于Comparable接口
@Override
public int compareTo(Object o) {
if (o instanceof Person) {
Person p = (Person) o;
int t = this.getName().compareTo(p.getName());
if (t != 0) {
return t;
} else {
return Integer.compare(this.getAge(), p.getAge());
}
}
throw new RuntimeException("类型不匹配");
}
2.自定义排序需要实例化Comparator对象
Comparator comparator = new Comparator() {
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Person && o2 instanceof Person) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
return -Integer.compare(p1.getAge(),p2.getAge());
}
throw new RuntimeException("输入的类型不一致");
}
};
TreeSet treeSet = new TreeSet(comparator);