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

  • 相关阅读:
    个人阅读作业Week7
    2015年团队项目选择
    实验与作业(Python)-02 Python函数入门与温度转换程序(函数、input、eval、int、float、列表)
    实验与作业(Python)-03 Python程序实例解析(函数、循环、range、turtle)
    实验与作业(Python)-04 数据类型、数学函数与字符串
    Java第05次实验提纲(Java图形界面编程)
    Python能做些什么?
    Python教学相关资料
    使用邮件交流的好处
    Java9相关资料(JShell简易教程等)
  • 原文地址:https://www.cnblogs.com/renjiaqi/p/11382392.html
Copyright © 2011-2022 走看看