package collection.set;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSet_class {
public static void main(String[] args) {
TreeSet ts=new TreeSet();
ts.add(new Student("abc",23));
ts.add(new Student("abcd",23));
ts.add(new Student("fwqf",13));
ts.add(new Student("Dfcda",53));
ts.add(new Student("erea",73));
ts.add(new Student("bca",33));
Iterator iter=ts.iterator();
while(iter.hasNext()){
Student stu=(Student) iter.next();
System.out.println(stu.getName()+"...."+stu.getAge());
}
}
}
class Student implements Comparable{//实现Comparable接口,强制使Student类具备比较性
private String name;
private int age;
/*
* 复写Comparable接口中的compareto()方法,从新定义比较规则
* 底层自动调用
* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Object obj){
if(!(obj instanceof Student)){
throw new RuntimeException("不是Student对象");
}
Student stu=(Student)obj;
if(this.age>stu.age){
return this.age-stu.age;
}else if(this.age==stu.age){
return this.name.compareTo(stu.name);//字符串已经实现了Comparable接口,可以直接调用
}else{
return -1;
}
}
public Student(String name,int age){
this.name=name;
this.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;
}
}