zoukankan      html  css  js  c++  java
  • 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]

        }

    }

  • 相关阅读:
    python模块--time模块
    python模块--如何相互调用自己写的模块
    Animating Views Using Scenes and Transitions
    fragment 切换
    android textview 设置text 字体
    android intent 5.1
    android EditView ime
    animation of android (4)
    animation of android (3)
    animation of android (2)
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136144.html
Copyright © 2011-2022 走看看