排序实际上针对的是对对象数组进行的排序处理,如果要对对象数组进行排序,对象所在的类一定要实现Comparable接口(可比较接口)并且覆写compareTo()方法,但如果这个类不是我们自己定义的,那就没办法比较了,所以这个方法很不灵活。
例:
Person.java
public class Person implements Comparable<Person>{
private Integer age;
private String name;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
@Override
public int compareTo(Person o) {
//按年龄升序排序
return this.getAge() - o.getAge();
}
}
TestTreeSet.java
import java.util.TreeSet;
public class TestTreeSet {
public static void main(String[] args) {
Person person1 = new Person();
Person person2 = new Person();
Person person3 = new Person();
person1.setAge(20);
person1.setName("Tonny");
person2.setAge(25);
person2.setName("Jack");
person3.setAge(17);