按降序对int数组排序
以下代码将按 升序 对数组进行排序:
int a[] = {30,7,9,20};Arrays.sort(a);
System.out.println(Arrays.toString(a));
我需要 按降序 排序。如何使用比较器执行此操作?
请帮忙。
回答:
对于原始数组类型,您必须编写一个反向排序算法:
或者,您可以将转换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);
以上是 按降序对int数组排序 的全部内容, 来源链接: utcz.com/qa/431100.html