找不到用于排序的Java Arrays.sort()或合适的方法

找不到用于排序的Java Arrays.sort()或合适的方法,java,arrays,sorting,lambda,comparator,Java,Arrays,Sorting,Lambda,Comparator,我有一个int[]数组。我试着用它的中值对它进行排序。我首先对它进行排序,计算其中值,然后使用lambda表达式作为比较器再次排序 但是编译器给出了一个错误: no suitable method found for sort(int[],(int a, in[...]n); }) Arrays.sort(arrCopy, (int a, int b) -> { 我的代码 Arrays.sort(arr); int median = arr[(arr.length - 1

我有一个int[]数组。我试着用它的中值对它进行排序。我首先对它进行排序,计算其中值,然后使用lambda表达式作为比较器再次排序

但是编译器给出了一个错误:

no suitable method found for sort(int[],(int a, in[...]n); })
        Arrays.sort(arrCopy, (int a, int b) -> {
我的代码

Arrays.sort(arr);
int median = arr[(arr.length - 1) / 2];
Arrays.sort(arrCopy, (int a, int b) -> {
            return (Math.abs(a - median) == Math.abs(b - median)) ? Math.abs(a - b) : Math.abs(a - median) - Math.abs(b - median);
        });

我想根据数字与中值的绝对差值对数字进行排序。

尝试使用
IntStream
并从int值数组构建流

        int[] result = IntStream.of(arr).boxed().sorted((a, b) -> {
            return (Math.abs(a - median) == Math.abs(b - median)) ? Math.abs(a - b)
                    : Math.abs(a - median) - Math.abs(b - median);
        }).mapToInt(i -> i.intValue()).toArray();
如果您阅读文档,即的javadoc,so将看到使用
比较器的唯一重载是泛型数组,泛型不能是原语,因此除了自然顺序之外,没有其他方法对数字进行排序。在应用备用排序顺序之前,需要将基本体值框起来。