TreeSet类是需要对存入Set集合中的元素进行排序的,也就是说一个类需要实现Comparable接口,重写compareTo()方法,让该类对象具备了比较性,才能存入TreeSet的,往TreeSet里添加不具备比较性的元素,是会报ClassCastException的
上述示例中 class Student 可改写如下
class Student implements Comparable<Student> {
private String name;
private int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
// 默认排序方式为学生姓名的自然顺序,即字典顺序
// 若姓名相同,则按年龄由小到大排列
// 对于姓名年龄均相同的,认为是同一个人,存不进去
public int compareTo(Student stu) {
// 方法内部调用的这俩compareTo是String类实现Comparable接口,重写的方法
// int compareTo(String anotherString) 按字典顺序比较两个字符串,详见API文档 java.lang.String类