• collections工具类 排序


    Collections:操作集合元素的工具类,由静态方法组成
        void sort(List): 集合元素排序
        void sort(List<T> list, Comparator<? super T> c) 集合元素排序
        例如:有一个list集合(ArrayList),元素排序
            方法1:
            Collections.sort(list);//必须保证list集合中的元素已经实了Comparable接口
            方法2:
            //自定义比较器的类,实现Comparator接口
            class XxxComXxxComparator implements Comparator<元素类型>(){
                public int compare(元素类型 t1, 元素类型 t2){
                    //比较大小的代码
                    return 0;
                }
            }
     
            Collections.sort(list, new XxxComparator());
            //XxxComparator必须是实现了Comparator接口的实现类,可以使用匿名实现,如下:
            Collections.sort(list, new Comparator<元素类型>(){
                public int compare(元素类型 t1, 元素类型 t2){
                    //比较大小的代码
                    return 0;
                }
            });
     
        int binarySearch(List, E):二分法查找
        List必须是实现自然排序(元素类型实现了Comparable接口)后,才能使用二分法查找
        返回负数表示查找失败
     
     
        void reverse(List) :将列表元素反转
     
     
        void shuffle(List) :将列表元素混排
        void shuffle(List<?> list, Random rnd) 将列表元素混排
     

     
    //自定义排序算法
    for(int i=0; i<col.size()-1; i++){
        for(int j=i+1; j<col.size();j++){
            if(比较索引号i和j对应位置元素的大小){
                //两个元素交换
                Object t1 = col.get(i);
                Object t2 = col.get(j);
                col.set(i,t2);
                col.set(j,t1);           
            }
        }
    }
     
    //使用Collections中的sort()实现自然排序
    第一步:
        实体类实现Comparable接口,实现compareTO()方法。
    第二步:
        调用sort()方法
        Collections.sort(list集合)
     
    //使用Collections中的sort()实现指定比较 器排序
    第一步:
        单独定义一个比较器实现Comparator接口
        有两种方法:
            1.内部类
            class 比较器名 implements Comparator<元素类型>{
                @Override
                public int compare(元素类型 o1, 元素类型 o1){
                    o1元素与o2元素的比较
                    o1大于o2返回正数
                    o1小于o2返回负数
                    o1,o2相等,返回0
     
                    return 0;
                }
            }
     
     
            2.匿名内部类(不要单独定义,在调用时定义)
    第二步:   
        调用sort()方法1
        Collections.sort(list集合, new 比较器() );
        调用sort()方法2:匿名内部类
        Collections.sort(list集合, new Comparator<元素类型>(){
            public int compare(元素类型 o1, 元素类型 o1){
                    o1元素与o2元素的比较
                    o1大于o2返回正数
                    o1小于o2返回负数
                    o1,o2相等,返回0
     
                    return 0;
                }
        } );
     
     
     
  • 相关阅读:
    js数组扁平化
    react 监听页面滚动
    package.json 里的 dependencies和devDependencies区别
    背景图自适应屏幕居中显示,且不变形
    antd table 点击行触发radio 或 checkbox
    使用antd Table + mobx 处理数组 出现的一系列问题
    定时刷新页面或请求接口
    添加索引,联合唯一索引
    添加 查看 和删除 索引
    phpEXCEL如何设置单元格格式为百分比
  • 原文地址:https://www.cnblogs.com/zachary7/p/8191551.html
Copyright © 2020-2023  润新知