先给出一个简单的Person类。
package demo01;
public class Person implements Comparable<Person>{
String name ;
int age ;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
当使用main方法创建3个对象
Person person1 = new Person("张三", 27);
Person person2 = new Person("李四", 18);
Person person3 = new Person("王五", 23);
并对其中年龄进行排序时,需要重写Collections中的Comparable接口中的compareTo方法
@Override
public int compareTo(Person o) {
return this.getAge() - o.getAge();
就可以对自定义类中的age进行升序排序
打印结果如下:
[Person{name='张三', age=27}, Person{name='李四', age=18}, Person{name='王五', age=23}]
[Person{name='李四', age=18}, Person{name='王五', age=23}, Person{name='张三', age=27}]