java - 对 int 数组进行降序排序

标签 java arrays sorting

Possible Duplicate:
Sort arrays of primitive types in descending order
Java : How to sort an array of floats in reverse order?
How do I reverse an int array in Java?

以下代码将按升序顺序对数组进行排序:

int a[] = {30,7,9,20};
Arrays.sort(a);
System.out.println(Arrays.toString(a));

我需要按降序的顺序对其进行排序。我如何使用 Comparator 来做到这一点?

请帮忙。

最佳答案

对于原始数组类型,您必须编写反向排序算法:

或者,您可以将 int[] 转换为 Integer[] 并编写一个比较器:

public class IntegerComparator implements Comparator<Integer> {

    @Override
    public int compare(Integer o1, Integer o2) {
        return o2.compareTo(o1);
    }
}

或使用 Collections.reverseOrder(),因为它仅适用于非原始数组类型。

最后,

Integer[] a2 = convertPrimitiveArrayToBoxableTypeArray(a1);
Arrays.sort(a2, new IntegerComparator()); // OR
// Arrays.sort(a2, Collections.reverseOrder());

//Unbox the array to primitive type
a1 = convertBoxableTypeArrayToPrimitiveTypeArray(a2);

关于java - 对 int 数组进行降序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414299/

相关文章:

python - 在 Numpy 中切片后确定结果数组的形状

javascript - 我认为自定义排序方法存在范围问题

sorting - 根据 2D/3D 点的相互距离对数组进行启发式排序

c - 优化 O(n^2) 到 O(n)(未排序的字符串)

java - 将 ID 列表与其对应的对象进行匹配

java - 确定序列号中的前导零

arrays - 在 2D MATLAB 数组中的两点之间获取 1D 切片

javascript - JavaScript 中的空数组

java - 访问 ArrayList 中其他项目之间的所有项目

java - 如何对多种语言进行排序?