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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1958078929 中级黑马   /  2015-6-19 12:41  /  577 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、TreeSet的自然排序:

步骤:让元素自身具备比较性,

实现Compareable接口,覆盖其CompareTo方法


class Student implements Comparable//第一:实现Compareable接口

{

    private String name;

    private int age;


    Student(String name,int age)

    {

       this.name = name;

       this.age = age;

    }


    public int compareTo(Object obj) //第二:复写CompareTo方法

    {


       //return 0;


       if(!(obj instanceof Student))   //第三:判断对象是否是特定类的一个实例

           throw new RuntimeException("不是学生对象");

       Student s = (Student)obj;


       System.out.println(this.name+"....compareto....."+s.name);

//第四:当前对象的年龄与插入对象的年龄进行比较,当前年龄大于插入对象的年龄时,返回1,

此时将插入二叉树的右边,当等于时,返回0,进行次要条件的比较,再次调用;当小于时,返回-1;


       if(this.age>s.age)  

           return 1;

       if(this.age==s.age)

       {

           return this.name.compareTo(s.name);

       }

       return -1;

       /**/

    }


    public String getName()

    {

       return name;


    }

    public int getAge()

    {

       return age;

    }

}



class TreeSetDemo

{

    public static void main(String[] args)

    {

       TreeSet ts = new TreeSet();


       ts.add(new Student("lisi02",22));

       ts.add(new Student("lisi007",20));

       ts.add(new Student("lisi09",19));

       ts.add(new Student("lisi08",19));



       Iterator it = ts.iterator();

       while(it.hasNext())

       {

           Student stu = (Student)it.next();

           System.out.println(stu.getName()+"..."+stu.getAge());

       }

    }

}


2 个回复

倒序浏览
这个真心没看懂,应该是还没学到
回复 使用道具 举报
总结得很好,学习下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马