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/