TreeSet自定义类

简介: TreeSet自定义类
class Student implements Comparable//该接口强制让学生具备比较性
{
    private String name;
    private int age;
    student(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
    public int compareTo(Object obj)//覆盖接口里的compareTo方法,用Object 接收参数,不能声明异常
    {
    if(!(obj instanceof Student))//先判断obj是Student类的实例
        throw new RuntimeException("不是学生对象")//抛出运行时异常
    Student s = (Student)obj;//强转s
    //System.out.println(this.name+"...compareto"+s.name)
    if (this.age>s.age)//调用者比较传入参数,
        return 1;
    if (this.age==s.age)//如果年龄属性相同,再调用名字属性比较
    {
        return this.name.compareTo(s.name);//调用者 调用String类的comparTo方法 按字典顺序比较 (传入参数)
    }       
    if (this.age<s.age)
        return -1;  
    }
    public String getName()
    {
        return name;
    }
    public String getAge()
    {
        return Age;
    }   
}
class  TreeSetDemo2
{
    public static void main(String[] args) 
    {
        TreeSet ts = new TressSet(new MyCompare());//传进比较器
        ts.add(new Student("lisi02",22));
        ts.add(new Student("lisi007",20));
        ts.add(new Student("lisi09",19));
        ts.add(new Student("lisi01",40));
        Iterator it = ts.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next());
        }
    }
}
class MyCompare implements Comparator//定义比较器
{
    public int compare(Object o1,Object o2)
    {
        Student s1 = (Student)o1;
        Student s2 = (Student)o2;
        int num = s1.get.getName().compareTo(s2.getName());
        if(num == 0)
        {
            new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
            /*
            if(s1.getAge()>s2.getAge())
                return 1;
            if(s1.getAge()==s2.getAge())
                return 0;
            if(s1.getAge()<s2.getAge())
                return -1;
            */
        }
        return num;
    }
}
相关文章
|
安全 Java Windows
集合框架之Map集合(下)
集合框架之Map集合(下)
46 1
|
5月前
|
存储 算法 Java
14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
69 2
14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
|
存储 安全
集合框架之(Map集合)
集合框架之(Map集合)
59 0
|
存储 安全 Java
集合框架之Map集合
集合框架之Map集合
42 0
|
存储
集合框架之Map集合(上)
集合框架之Map集合
53 0
|
存储 算法 NoSQL
【Java集合】1 浅析hashCode方法
【Java集合】1 浅析hashCode方法
121 0
【Java集合】1 浅析hashCode方法
|
Java 开发者
HashSet 子类|学习笔记
快速学习 HashSet 子类
136 0
HashSet 子类|学习笔记
|
存储 算法 安全
Java集合(5)--Set接口及其实现类HashSet、LinkedHashSet和TreeSet
Java集合(5)--Set接口及其实现类HashSet、LinkedHashSet和TreeSet
128 0
Java集合(5)--Set接口及其实现类HashSet、LinkedHashSet和TreeSet
|
存储 Java 开发者
LinkedHashMap 子类|学习笔记
快速学习 LinkedHashMap 子类
134 0
LinkedHashMap 子类|学习笔记
|
存储 Java
Java集合之Map集合
Java集合之Map集合
231 0
Java集合之Map集合