代码实现:
package cn.lpq.WhtchVedeo;
import java.util.Collection;
import java.util.Iterator;
import java.util.TreeSet;
public class TestTreeSet {
public static void main(String[]args){
Collection c=new TreeSet();
//TreeSet集合会对集合内的对象进行排序(按照ASC2码大小排序),排序过程中会进行比较,
//自定义对象时,必须实现Comparable接口和改写comapareTo方法
c.add(new Student("lpq110",19));
c.add(new Student("lpq09",18));//年龄一样时会默认为相等所以只能显示一个18岁的,为避免这种情况需要再次判断名字是否一样,
//使用compareTo方法,因为String已经实现了compareTo方法
c.add(new Student("lpq08",18));
c.add(new Student("lpq112",22));
Iterator it=c.iterator();
while(it.hasNext()){
Student stu=(Student)it.next();
System.out.println(stu.getName()+" "+stu.getAge());
}
}
}
class Student implements Comparable{
private String name;
private int age;
public Student(String name,int age){
this.age=age;
this.name=name;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public int compareTo(Object obj){
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象!");
Student s=(Student)obj;
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);
}
return -1;
}
}