arrays.sort重写comparator
时间: 2023-10-30 15:22:23 浏览: 63
当使用`Arrays.sort`对数组进行排序时,可以通过重写`Comparator`接口来自定义排序规则。以下是一个示例:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
Integer[] numbers = {5, 2, 10, 1, 8};
// 使用自定义的Comparator进行排序
Arrays.sort(numbers, new CustomComparator());
// 打印排序后的数组
System.out.println(Arrays.toString(numbers));
}
static class CustomComparator implements Comparator<Integer> {
@Override
public int compare(Integer num1, Integer num2) {
// 自定义排序规则,按照数字大小倒序排序
return num2 - num1;
}
}
}
```
在上述示例中,我们创建了一个名为`CustomComparator`的内部类,实现了`Comparator<Integer>`接口。在`compare`方法中,我们可以根据自己的需求定义排序规则。在这个例子中,我们按照数字的大小倒序排序。
然后,我们使用`Arrays.sort`方法并传入自定义的比较器对象`CustomComparator`来对数组进行排序。最后,通过打印数组来验证排序结果。
请注意,如果要对其他类型的对象进行排序,只需将`Integer`替换为相应的类型,并相应地修改比较逻辑即可。