按降序对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

回到顶部