zoukankan      html  css  js  c++  java
  • java 通过实现Comparable接口使用Collections.sort排序 及 利用set的特性对 list 进行去重

    示例:实体类实现Comparable接口,重写compareTo方法

    public class Person implements Comparable<Person>{
        private String personId;
        private String rate;
        
            ......
    
        @Override
        public int compareTo(Person o) {
            if(o.getRate().equals(this.getRate())){
                return 0;
            }
            if(Double.parseDouble(this.getRate()) < Double.parseDouble(o.getRate())){
                         return -1;
                    }
            if(Double.parseDouble(this.getRate()) > Double.parseDouble(o.getRate())){
                         return 1;
                    }
            return 0;
        }    
    }

    Collections的使用

        public static void main(String[] args) {
            
            List<Person> ll = new ArrayList<Person>();
            
            ll.add(new Person("1","0.1"));
            ll.add(new Person("4","0.4"));
            ll.add(new Person("2","0.2"));
            ll.add(new Person("3","0.3"));
            
            //遍历输出结果   1  4  2  3    
            
            //默认排序(从小到大)
            Collections.sort(ll);//遍历输出结果   1  2  3  4    
    //从大到小,先默认排序再反转 Collections.sort(ll); Collections.reverse(ll);//遍历输出结果 4 3 2 1
    //随机排序,所有置换发生的可能性都是大致相等的 Collections.shuffle(ll);//遍历输出结果 1 3 4 2 }

    另:加 利用set对list进行去重

            Set set = new  HashSet();
            List<Person> newList = new ArrayList<Person>();
            for (Person p:ll) {
                if(set.add(p)){
                    newList.add(p);
                }
            }
            System.out.println( "去重后的集合: " + newList);
  • 相关阅读:
    Linux vim的四中模式
    Linux 打包压缩解压缩
    Linux 写入查看文本
    Linux 文件复制和移动
    Linux 创建删除目录
    Linux cd命令
    vim 文本替换
    linux工作中使用命令
    is 和 == 的区别
    再次复习python
  • 原文地址:https://www.cnblogs.com/xinzhisoft/p/10064705.html
Copyright © 2011-2022 走看看