zoukankan      html  css  js  c++  java
  • TreeSet

    1.TreeSet存储,遍历

    1.按照字典顺序排序,并且去重复

     1     TreeSet<Integer> treeSet = new TreeSet<>();
     2         treeSet.add(2);
     3         treeSet.add(5);
     4         treeSet.add(4);
     5         treeSet.add(2);
     6         treeSet.add(4);
     7         treeSet.add(8);
     8         treeSet.add(9);
     9         
    10         
    11         for (Integer integer : treeSet) {
    12             System.out.print(integer + " ");
    13         }
    14         //输出结果为 2 4 5 8 9 
     1 TreeSet<String> treeSet = new TreeSet<>();
     2         treeSet.add("a");
     3         treeSet.add("b");
     4         treeSet.add("c");
     5         treeSet.add("b");
     6         
     7         
     8         for (String string : treeSet) {
     9             System.out.print(string + " ");
    10         }
    11         //输出结果为 a b c 

    2.treeset自定义对象方法

      存储自定义对象时,需要在自定义对象中继承 Comparable接口,

      并在类中重写CompareTo方法

    1     public int compareTo(Student s) {
    2         int num = this.age - s.age;
        //结果相等时,也就是为0时,就不存储
        //结果为负数,就时倒述,从大到小
        //结果为正数,就是正述,从小到大
    3 return num==0? this .name.compareTo(s.name): num; 4 }
    1   //Comparator比较器,需要在自定义类上继承Comparator接口
        在重写compare()方法
        需要在主类创建集合对象时在最后的括号中添加(new 对象)
         public int compare(Student s, Student s1) { 2 int num = s.age - s1.age; 3 int num1 = s.age1 - s1.age1; 4 return num==0?num1:num ; 5 }

     3.  treeset自定义对象排序原理

        二叉排序树,输出规律,先输出左子数,在根,在输出右子数,比根小就放在左边,比根大就放在右边

    4.TreeSet原理

      特点:TreeSet是用来排序的,可以指定一个顺序,对象存入后会按照指定的顺序排列

      使用方法:

          自然排序(Comparable)

              TreeSet类的add()方法中会把存入的对象提升为Comparable类型

              调用对象的compareTo()方法,和集合中的对象进行比较

              根据compareTo()方法返回的结果进行存储

          比较器顺序(Comparator)

              创建TreeSet的时候可以指定一个 Comparator

              如果传入Comparator的子类对象,那么TreeSet就会按照比照器中的顺序比较

              add()方法内部会自动调用 Comparator 接口中的 compare方法的第二参数

          两种方式的区别

              TreeSet构造函数什么都不传,默认按照类中的Comparable的顺序(没有就报错ClassCastException)

              TreeSet如果传入 Comparator,就先按照Comparator     

              

  • 相关阅读:
    Python实现ftp服务(1)
    MYSQL/HIVESQL笔试题(六):HIVESQL(六)
    Hive基础(16):Hive函数(8) 常用函数
    MYSQL/HIVESQL笔试题(五):HIVESQL(五)
    MYSQL/HIVESQL笔试题(四):HIVESQL(四)
    MYSQL/HIVESQL笔试题(三):HIVESQL(三)
    498. Diagonal Traverse
    493. Reverse Pairs
    1021. Remove Outermost Parentheses
    490. The Maze
  • 原文地址:https://www.cnblogs.com/xsh726/p/11418430.html
Copyright © 2011-2022 走看看