主页 > 知识库 > 网络编程 > JSP/Java >

JAVA应用 之 排序(2)

来源:中国IT实验室 作者:佚名 发表于:2013-07-17 14:17  点击:
//这里只是为了快速展示排序而设计的简陋的类,所以不要追究 你这个类设计的不科学,成员变量应该私有等问题。 class Student { public String name; //姓名 public int score; //分数 Student(String name,int sc

//这里只是为了快速展示排序而设计的"简陋"的类,所以不要追究 你这个类设计的不科学,成员变量应该私有等问题。
    class Student
    {
    public String name;  //姓名
    public int score;  //分数
    Student(String name,int score)
    {
    this.name=name;
    this.score=score;
    }
    @Override
    public String toString()
    {
    return "["+name+":"+score+"]";
    }
    }
    //一个学生的比较器,泛型定义了比较的范围是Student,也可以不定义泛型,再在compare里面进行强制转换
    class StudentComparator  implements Comparator<Student>
    {
    @Override
    public int compare(Student s1, Student s2)
    {
    if(s1.score>s2.score) return 1;
    else if(s1.score<s2.score) return -1;
    else return 0;
    }
    }
    /**
    * 一个实现了Comparable接口的compareTo方法的学生类
    * compareTo的实现方式:
    *   x.compareTo(y)为例,当x小于y的时候,返回一个负数。当x大于y的时候,返回一个正数。相等的时候返回0.
    */
    class ComparableStudent implements Comparable<ComparableStudent>
    {
    public String name;  //姓名
    public int score;  //分数
    ComparableStudent(String name,int score)
    {
    this.name=name;
    this.score=score;
    }
    @Override
    public int compareTo(ComparableStudent s)
    {
    if(score>s.score) return 1;
    else if(score<s.score) return -1;
    else return 0;
    }
    @Override
    public String toString()
    {
    return "["+name+":"+score+"]";
    }
    }

有帮助
(0)
0%
没帮助
(0)
0%