zoukankan      html  css  js  c++  java
  • Set集合(TreeSet)

    TreeSet

    TreeSet需要重写排序器compareTo的方法才能输出不会出错。这个是自然排序器

    1 @Override
    2     public int compareTo(Person o) {
    3         // TODO Auto-generated method stub
    4         return this.sid-o.sid;
    5     }

    然后在Temp类调用实体类的时候会用的到:

     //自然排序器
    //        Set<Person> s=new TreeSet<>();
    //        System.out.println(new Person(1, "zs", 18));
    //        System.out.println(new Person(1, "zs", 18));
    //        System.out.println(new Person(1, "Is", 18).equals(new Person(1, "zs", 18)));
    //        s.add(new Person(1, "zs", 18));
    //        s.add(new Person(1, "zs", 18));
    //        s.add(new Person(2, "Is", 19));
    //        s.add(new Person(3, "ww", 20));
    //        s.add(new Person(4, "qq", 21));
    //        System.out.println(s.size());
    //        for(Person p:s) {
                //默认转换String的类型
    //            System.out.println(p);
    //        }

    以上是它compareto自己的排序器,但是我们能自定义排序器的,接下来我们定义一个按照年龄的排序器:

     1 package com.temp;
     2 
     3 import java.util.Comparator;
     4 
     5 public class Age implements Comparator<Person> {
     6 
     7     @Override
     8     public int compare(Person o1, Person o2) {
     9         // TODO Auto-generated method stub
    10         return o1.getSage()-o2.getSage();
    11     }
    12 
    13 }
     1 //自定义排序器
     2         Set<Person> s=new TreeSet<>(new Age());
     3         System.out.println(new Person(1, "zs", 18));
     4         System.out.println(new Person(1, "zs", 18));
     5         System.out.println(new Person(1, "Is", 18).equals(new Person(1, "zs", 18)));
     6         s.add(new Person(1, "zs", 18));
     7         s.add(new Person(1, "zs", 18));
     8         s.add(new Person(2, "Is", 19));
     9         s.add(new Person(3, "ww", 200));
    10         s.add(new Person(4, "qq", 21));
    11         System.out.println(s.size());
    12         for(Person p:s) {
    13             //默认转换String的类型
    14             System.out.println(p);
    15         }

    自定义自己的排序器后它就会按照我们的想要的排序去排序。上面这个就是按照年龄排序的自定义排序器

  • 相关阅读:
    哈夫曼
    P1631序列合并
    PAT Mice and Rice
    ybt 1356 计算(calc)
    P2947 Look Up S
    electron主进程与渲染进程的通信方式
    自定义BufferedReader
    小程序云数据库查询数据用在其它任意地方(完美解决)
    html+js实现微信跳转遮罩层
    Java创建属于自己的二维码(完整版)
  • 原文地址:https://www.cnblogs.com/hyfl/p/10904591.html
Copyright © 2011-2022 走看看