我在考虑使用比较器按降序对int[] array
进行排序。
我尝试如下,但是,我得到一个错误,主要是因为比较器用于诸如Integer之类的对象,而不是诸如int []之类的数据类型。是否可以按降序对int []数组进行排序而不将其转换为整数数组?
Arrays.sort(a, new Comparator<int>() {
@Override
public int compare( int a, int b)
{
return b-a;
}
});
基于安迪特纳的回应。
public class ArraySortDesendingOrder {
public static void main(String[] args) {
// int[] a = {1,2,3,4,5,6};
int[] a = {1,2,3,4,5};
ArraySortDesendingOrder obj = new ArraySortDesendingOrder();
obj.print(a);
obj.sortInDescnedingOrder(a);
obj.print(a);
}
public void sortInDescnedingOrder( int[] a)
{
Arrays.sort(a);
for(int i = 0;i<a.length/2;i++)
{
swap(a, i, a.length-1-i);
}
}
public void swap(int[] a, int i, int j)
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
public void print(int[] a)
{
for(int i = 0;i<a.length;i++)
System.out.print(a[i] + " ");
System.out.println("");
}
}