• java TreeSet的排序之自然排序


    TreeSet会调用元素的compareTo(Object o)方法来比较元素之间的大小关系,然后将集合里的元素按升序排列.此时需要排序元素的类必须实现Compareble接口,并覆写其int compareTo(Object o)方法;

    该方法用于比较对象,若:obj1,compareTo(obj2),返回0,表示两个对象相等,若返回一个正整数,表示obj1大于obj2,若返回一个负整数,表示obj1小于obj2;

    对于TreeSet集合而言,判断两个对象相等的标准是:

    compareTo()方法比较返回 0;

    package july7;

    //TreeSet可以自动进行排序!最简单的情况

    import java.util.Set;

    import java.util.TreeSet;

    public class Demo13 {

        public static void main(String[] args) {

           

            Set<Integer> s = new TreeSet<Integer>();

            s.add(1);

            s.add(192);

            s.add(123);

           

            s.add(56);

            s.add(13);

            s.add(96);

            System.out.println(s);//[1, 13, 56, 96, 123, 192]

        }

    }

    稍复杂点的

    package july7;

    //TreeSet的自然排序,升序

    import java.util.Set;

    import java.util.TreeSet;

    class Student implements Comparable{//必须实现接口

        private Integer age;

        public Student(Integer age) {

            super();

            this.age = age;

        }

        @Override

        public int compareTo(Object o) {//比较的规则,运用泛型可以消除强转!

            if(o instanceof Student){

                Student s = (Student)o;

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

            }

            return 0;

        }

        @Override

        public String toString() {

            return age+"" ;

        }

    }

    public class Demo14 {

        public static void main(String[] args) {

           

            Set<Student> s = new TreeSet();

            s.add(new Student(140));

            s.add(new Student(15));

            s.add(new Student(11));

            s.add(new Student(63));

            s.add(new Student(96));

            System.out.println(s);//[11, 15, 63, 96, 140]

        }

    }

  • 相关阅读:
    如何将一棵树转化成二叉树
    雪碧图的使用
    CSS简介,引入方式,文字和文本样式设置
    表格Table和表单元素
    html 中< col>标签和< colgroup>标签的区别
    Emmet的HTML语法(敲代码的快捷方式)
    抖音风格字体效果
    几种有效减小电脑系统盘使用量的方法
    ubuntu 机器名称修改方法
    Ubuntu 为基于X应用程序增加启动项的正确做法
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136144.html
Copyright © 2020-2023  润新知