SortedSet集合存储元素为什么可以自动排序?
因为被存储的元素实现了Comparable接口,
SUN编写TreeSet集合在添加元素的时候,会
调用compareTo方法完成比较.
import java.util.*;
public class SortedSetTest02 {
public static void main(String[] args){
SortedSet users = new TreeSet();
User u1 = new User(15);
User u2 = new User(23);
User u3 = new User(15);
User u4 = new User(27);
User u5 = new User(9);
//添加元素
users.add(u1);
users.add(u2);
users.add(u3);
users.add(u4);
users.add(u5);
//遍历‘
Iterator it = users.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
//第一种方式
class User implements Comparable{
int age;
User(int age){
this.age = age;
}
public String toString(){
return "User[age = "+age+"]";
}
//实现java.lang.Comparable;接口中的compareTo方法
//该方法程序员负责实现,SUN提供的程序已经调用了该方法.
//需求:按照User的age排序
public int compareTo(Object o){
//编写一个比较规则。
int age1 = this.age;
int age2 = ((User)o).age;
return age2 - age1;
}
}