zoukankan      html  css  js  c++  java
  • java集合排序规则的一些改写方法

    1、适用与List的sort排序改写

        public static void main(String[] args){
               ArrayList<Integer> list=new ArrayList<>();
               list.add(2);
               list.add(3);
               list.add(1);
               list.add(5);
                     
               Collections.sort(list,calAll());     //定义新的改写规则calAll();
                for(Integer i : list)
                    System.out.print(i+" ");
        }
    
        private static Comparator calAll() {
            return new Comparator<Integer>() {           //返回倒序规则
                public int compare(Integer o1, Integer o2) {        
                    if(o1>o2)
                        return -1;
                    else if(o1<o2)
                        return 1;
                    else
                        return 0;
                }
                };
        }

    2、适用于set容器的TreeSet排序规则改写

    Set<String> sortset = new TreeSet<>(new Comparator<String>() {
                    public int compare(String o1, String o2) {
                        Integer a = rank(o1);       //rank为自定义的某个规则
                        Integer b = rank(o2);
                        if(a!=b)
                            return a.compareTo(b);      
                        else if(o1.length()!=o2.length())    //长度短的排长的后面
                            return ((Integer)o1.length()).compareTo(((Integer)o2.length()));
                        else
                            return o1.compareTo(o2);     //按ASCII码排序
                    }
                });

    compareTo函数:a大于指定函数b返回1,小于则返回-1,等于返回0;且基元数据类型不能调用(比如int无法调用,Integer即可)。

  • 相关阅读:
    CSS 去掉文字选中状态
    解决MAC系统升级导致COCOAPODS失效问题
    qr-mili Tekniskt stöd
    JavaScript 随笔
    Https 单向验证 双向验证
    git 常用指令
    h5或者微信端吊起app
    创建本地服务器环境
    jenkins 关闭和重启的实现
    jenkins 忘记用户名和密码
  • 原文地址:https://www.cnblogs.com/JIATCODE/p/12316949.html
Copyright © 2011-2022 走看看