static void sort(T[] a, Comparator<? super T> c)
- 参数一是需要排序的数组,必须是对象数组
- 参数二是返回值为int的比较器,大于0则交换,小于0不交换
- 利用比较器来改变数组的排序规则
如何使用?
第一种方法
//这里只能用Integer来表示整数数组类型。它是int的包类 也就是super T(super在Java中是父类的意思);
Integer[] s = {1 , 3, 0, 3, 6, 2, 8, 4, 14, 11};
Arrays.sort(s, new Comparator<Integer>() {
@Override
//在这里主要是重写了 Comparator类的compare方法,
//sort方法可能也用了这个方法进行排序,然后在这里被重写了。
public int compare(Integer o1, Integer o2) {
return o2 - o1;//当大于0就交换,否则不交换。
}
});
第二种方法
Integer[] s = {1 , 3, 0, 3, 6, 2, 8, 4, 14, 11};
Arrays.sort(s,(o1,o2) -> o2 - o1);//这里用的是匿名类的labmda表达式