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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kkkkkccccc 中级黑马   /  2015-7-31 00:05  /  249 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class TreeSet_1{
public static void main(String[] args) {
                TreeSet<Student> treeSet=new TreeSet<Student>();
                treeSet.add(new Student("周杰伦", 23, 44));
                treeSet.add(new Student("周润发", 33, 88));
                treeSet.add(new Student("珍视明", 34, 78));
                treeSet.add(new Student("马丽梅", 77, 33));
                treeSet.add(new Student("爱丽", 66, 99));
                treeSet.add(new Student("爱丽", 66, 99));
                //方法一:让Student类实现Comparble接口
                for (Student student : treeSet) {
                        System.out.println(student.getName()+"\t"+student.getAge()+"\t"+student.getScore());
                }
                System.out.println("***********************************************");
}
}

package fuxi;
/*
*吧学生类存入TreeSet中,TreeSet的底层结构是二叉树的结构,可以对元素进行排序
*存入的元素会有一种自然排序
*就是根据Comparble实现这个接口,实现compareTo的方法,可以按照自己重写的条件进行排序的
*
* */
public class Student implements Comparable<Student> {
        private String name;
        private int age;
        private int score;
       
        public Student() {
                super();
                // TODO Auto-generated constructor stub
        }

        public Student(String name, int age, int score) {
                super();
                this.name = name;
                this.age = age;
                this.score = score;
        }


        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;
        }

        public int getScore() {
                return score;
        }

        public void setScore(int score) {
                this.score = score;
        }

       
        //使用Treeset进行存储数据的话,可以对元素进行排序
        //让类重写Comparble的方法
        /*
         *  按照学生的分数排序,分数大的童鞋在前面,用后来者进行比较前者
         *  如果分数相同,那么年龄小的在前面,
         *  如果分数年龄都相同, 则按照姓名(英文的即可)的字典顺序排序.
         * */
        @Override
        public int compareTo(Student stu) {
                // TODO Auto-generated method stub
                //return 0;
                int num=stu.score-this.score;
                int num2=num==0?(this.age-stu.age):num;
                int num3=num2==0?(this.name.compareTo(stu.name)):num2;
                return num3;
        }
}


评分

参与人数 1黑马币 +6 收起 理由
Miss.H + 6 赞一个!

查看全部评分

1 个回复

正序浏览
几百年的帖子也拿出来发  鄙视(#‵′)凸
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马