Может быть я не правильно понимаю как работает Collections.reverseOrder(). Если не ошибаюсь он переворачивает массив?
int count = array.length - 1;
        Integer[] a = new Integer[][array.length];
        for(int i = 0; i < array.length; i++){
            a[i] = array[count];
            count--;
        }
        Arrays.sort(a, Collections.reverseOrder());
        for(int p = 0; p < a.length; p++){
            array[p] = a[p];
        }