I was thinking of using a Comparator to sort an int[] array
in descending order.
I tried as follows, however, I get an error, mainly due to the fact that, Comparator is for objects such as Integer, and not a data type such as int[]. Is it possible to sort an int[] array in descending order without converting it to an Integer array ?
Arrays.sort(a, new Comparator<int>() {
@Override
public int compare( int a, int b)
{
return b-a;
}
});
Based on Andy Turner's response.
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("");
}
}