美文网首页
day15-02/03-集合框架(TreeSet存储自定义对象)

day15-02/03-集合框架(TreeSet存储自定义对象)

作者: 姗婷 | 来源:发表于2020-06-22 19:14 被阅读0次

    往TreeSet集合中存储自定义对象学生。

    想按照学生的年龄进行排序。

    记住:排序时,主要条件相同时,一定要判断次要条件。

    TreeSet:可以对Set集合中的元素进行排序
    底层数据结构是二叉树。
    保证元素唯一性的依据
    comparenTo方法return 0。

    return -1,小到大,升序排列。
    return 1,大到小,降序排列。
    return 0,只取一个。

    TreeSet拍下的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法,这种方式也称为元素的自然顺序。或者叫默认顺序。


    二叉树.PNG
    import java.util.*;
    
    
    class Student implements Comparable//该接口强制让学生具备比较性
    {
        private String name;
        private int age;
        Student(String name,int age)
        {
            this.name = name;
            this.age = age;
        }
        //复写compareTo方法
        public int compareTo(Object obj)
        {
    /*return -1,小到大,升序排列。
    return 1,大到小,降序排列。
    return 0,只取一个。
    */
    return -1;
    /*
            if(!(obj instanceof Student))
                throw new RuntimeException("不是学生对象");
            Student s = (Student)obj;
    
            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);
             return -1;
    */  
        }
        public String getName()
        {
            return name;
        }
        public int getAge()
        {
            return age;
        }
    }
    
    
    class TreeSetTest
    {
        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));
            //ts.add(new Student("lisi01",40));
    
            Iterator it =  ts.iterator();
            while(it.hasNext())
            {
                Student stu = (Student)it.next();
                sop(stu.getName()+"...."+stu.getAge());
            }
        }
    
        public static void sop(Object obj)
        {
            System.out.println(obj);
        }
    }
    

    相关文章

      网友评论

          本文标题:day15-02/03-集合框架(TreeSet存储自定义对象)

          本文链接:https://www.haomeiwen.com/subject/tdkuxktx.html