A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大大阳 中级黑马   /  2016-3-14 21:44  /  192 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Student implements Comparable<Student>{
        String name;
        int age;
        char sex;
        public Student(String name,int age, char sex) {
                this.name = name;
                this.age = age;
                this.sex = sex;
        }
        public int compareTo(Student o){
                if (o == null) {
                        return 0;
                }
                int n1 = this.name.compareTo(o.name);
                int n2 = (n1 == 0 ? this.age - o.age : n1);
                int n3 = (n2 == 0 ? this.sex - o.sex : n2);
                return n3;
        }
}
public class Exercise{
        public static void main(String[] args) {
                Set<Student> stuTree = new TreeSet<>();
                stuTree.add(new Student("宋小宝",22,'男'));
                stuTree.add(new Student("刘能",33,'男'));
                stuTree.add(new Student("赵四",44,'男'));
                stuTree.add(new Student("小沈阳",55,'男'));
                stuTree.add(new Student("小沈阳",43,'男'));
                stuTree.add(new Student("小沈阳",55,'男'));
                stuTree.add(new Student("小沈阳",55,'女'));
                Iterator it = stuTree.iterator();
                while(it.hasNext()){
                        Student stu =(Student)it.next();
                        System.out.println(stu.name + "," +stu.age + "," + stu.sex);
                }
}
重写的compareTo方法是怎么执行的?自己也没调用它啊,难道是系统自带调用?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马