• List根据某字段去重,以及compareTo 浅解


    原文链接:https://blog.csdn.net/qq_35788725/article/details/82259013

    Collections.sort可对集合进行排序


    根据List里面某个字段进行出重筛选,此文是使用compareTo 比较器。请看代码:

    public static void main(String[] args) {
    //
    List<one> oneList = new ArrayList<one>();
    oneList.add(new one(1, "11111"));
    oneList.add(new one(2, "22222"));
    oneList.add(new one(4, "33333"));
    oneList.add(new one(3, "11111"));
    oneList.add(new one(5, "44444"));
    oneList.add(new one(6, "44444"));
    oneList.add(new one(7, "55555"));

    //=======比较器===========================================
    Set<one> treeSet = new TreeSet<one>(new Comparator<one>(){
    @Override
    public int compare(one o1, one o2) {

    //升序
    int compareTo = o1.getName().compareTo(o2.getName());

    //降序
    //int compareTo = o2.getName().compareTo(o1.getName());
    return compareTo;
    }
    });
    treeSet.addAll(oneList);
    //放入新的list 或者把当前的list进行close
    List<one> arrayList = new ArrayList<>(treeSet);
    for (one one : arrayList) {
    System.out.println(one.getName());
    }
    }

    }
    //实体
    class one{
    private int id;
    private String name;
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public one(int id, String name) {
    super();
    this.id = id;
    this.name = name;
    }
    public one() {
    super();
    // TODO Auto-generated constructor stub
    }




    }
     运行结果:

      

    ==========处理前========
    11111
    22222
    33333
    11111
    44444
    44444
    55555
    ==========处理后========
    11111
    22222
    33333
    44444
    55555
    以上就是根据list的某个字段用compareto来去重。

    以下是关于compareTo()的浅解:

        compareTo(): 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。

     该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较(runoob.com解释)。

    compareTo():

    如果指定的数与参数相等返回0。

    如果指定的数小于参数返回 -1。

    如果指定的数大于参数返回 1。

    示例:

    public static void main(String[] args) {
    Integer a = 99;
    System.out.println(a.compareTo(88));
    System.out.println(a.compareTo(100));
    System.out.println(a.compareTo(99));
    }
    运行结果:

    1
    -1
    0
     

  • 相关阅读:
    Redis的安装和部署
    SaltStack应用grains和jinja模板-第四篇
    SaltStack部署配置Tomcat-第三篇
    python魔法方法、构造函数、序列与映射、迭代器、生成器
    python异常
    python类
    python之函数、参数、作用域、递归
    docker+openvswitch实现主机与容器的网络通信
    Docker网络和容器的通信
    docker命名空间、控制组及联合文件系统概念
  • 原文地址:https://www.cnblogs.com/renjiaqi/p/11382392.html
Copyright © 2020-2023  润新知