常用类-- 使用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));
    }
}
原文地址:https://www.cnblogs.com/lixia0604/p/13470959.html