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)); } }