本帖最后由 刘克方 于 2012-5-16 11:27 编辑
先纠正一下:不是继承comparable,而是实现,因为comparable是一个接口。
不一定要实现,在类没有实现comparable接口的时候,treeSet根据加入元素的先后进行排序。
比如:学生类有个成绩属性
Student t1=new Student(78);
Student t2=new Student(67);
Student t3=new Student(89);
set.add(t2);
set.add(t1);
set.add(t3);
在集合中第一个元素 为t2,第二个元素为t1,第三个元素为t3
如果学生类实现了comparable接口:代码如下
public int compareTo(Object student) {
Student stu=(Student) student;
int i=0;
if(this.grate>stu.getGrate()){
i=1;
}
else if(this.grate>stu.getGrate()) {
i=-1;
}
return 2;
}
那么set集合会根据成绩由大到小排序:
集合中的元素顺序为:t3,t1.t2
也就是说当我们需要按照某种规则排序时才有必要实现comparable接口
|