import java.util.*;
class Example
{
public static void main(String args[])
{
TreeSet<Student> mytree=
              new TreeSet<Student>(new Comparator<Student>()
{
public int compare(Student a,student b)
{
return a.compareTo(b);
}
});
Student st1,st2,st3,st4;
st1=new Student(90,"zhan ying");
st2=new Student(66,"wang heng");
st3=new Student(86,"zan ying");
st4=new Student(76,"hang heng");
mytree.add(st1);
mytree.add(st2);
mytree.add(st3);
mytree.add(st4);
Iterator<Student> te=mytree.iterator();
while(te.hasNext())
{
Student stu=te.next();
System.out.println(""+stu.name+""+stu.english);
}
}
}
class Student implements Comparable
{
int english =0;
String name;
Student(int e,String n)
{
english=e;name=n;
}
public int compareTo(Object b)
{
Student st=(Student)b;
return(this.english-st.english);
}
}  咋整的,错哪儿了?哪位给个正确的answer,第七行哪错了?俺刚学TreeSet

解决方案 »

  1.   

    public int compare(Student a,student b)  
    student change Student 
    running,result:
    wang heng66
    hang heng76
    zan ying86
    zhan ying90
      

  2.   

    public  int  compare(Student  a,student  b)  
    应该是
    public  int  compare(Student  a,Student  b)  吧??
      

  3.   

    知位执行一下啊,来帮我看看,
    我想用TreeSet来实现自动比较按小到大输出。
      

  4.   

    import java.util.*;
    public class Example
    {
    public static void main(String args[])
    {
    TreeSet mytree=new TreeSet(){
    public int compare(Student a,Student b)
    {
    return a.compareTo(b);
    }
    }
    ;
    Student st1,st2,st3,st4;
    st1=new Student(90,"zhan ying");
    st2=new Student(66,"wang heng");
    st3=new Student(86,"zan ying");
    st4=new Student(76,"hang heng");
    mytree.add(st1);
    mytree.add(st2);
    mytree.add(st3);
    mytree.add(st4);
    Iterator te=mytree.iterator();
    while(te.hasNext())
    {
    Object st=te.next();
    Student stu=(Student)st;
    System.out.println("|"+stu.name +"|"+stu.english);
    System.exit(0);
    }
    }
    }
    class Student implements Comparable
    {
    int english =0;
    String name;
    Student(int e,String n)
    {
    english=e;name=n;
    }
    public int compareTo(Object b)
    {
    Student st=(Student)b;
    return(this.english-st.english);
    }
    }