zoukankan      html  css  js  c++  java
  • 常用类-- 使用comparator实现定制排序

    3.定制排序:使用Comparator接口

    3.1 说明
    1.背景:
    当元素的类型没实现java.lang.Comparable接口而又不方便修改代码,或者实现了java.lang.Comparable接口的排序规则不适合当前的操作,那么可以考虑使用 Comparator 的对象来排序
    2.重写compare(Object o1,Object o2)方法,比较o1和o2的大小:
    如果方法返回正整数,则表示o1大于o2;
    如果返回0,表示相等;
    返回负整数,表示o1小于o2。

    import java.util.Arrays;
    import java.util.Comparator;
    
    
    /**
     * @Author lx
     * @Description   使用comparator实现定制排序
     * @Date 16:45 2020/8/10
     * @Version */
    public class ComparatorTest {
        public static void main(String[] args) {
            String[] arr = new String[]{"AA","DD","YY","CC","PP","JJ"};
            Arrays.sort(arr, new Comparator(){
    
                @Override
                public int compare(Object o1, Object o2) {
                    if (o1 instanceof String && o2 instanceof String){
                        String s1 = (String) o1;
                        String s2 = (String) o2;
                        return -s1.compareTo(s2);  //从高到低排序 加‘ - ’号
                    }   //[AA, CC, DD, JJ, PP, YY]
                    throw new RuntimeException("当前类型不匹配");
                }
            });
            System.out.println(Arrays.toString(arr));
        }
    }
  • 相关阅读:
    C# 课堂总结2-数据类型及转换方式
    C# 课堂总结1-二进制转换
    C++
    C++ 程序设计语言
    VS编译器问题总结
    go 笔记
    SIP协议 会话发起协议(二)
    SIP协议 会话发起协议(一)
    201707 一些好的文章
    编程拾穗
  • 原文地址:https://www.cnblogs.com/lixia0604/p/13470959.html
Copyright © 2011-2022 走看看