Инвертирование массива

244
18 июля 2022, 21:40

Помогите выполнить задание, ломаю голову уже 2й час.

Определите и реализуйте общий статический метод invert, который возвращает инвертированную версию входного массива. Вы можете инвертировать массив на месте во входном массиве.

Sample Input 1:
Integer
10 6 2 3
Sample Output 1:
3 2 6 10

Мой код:

class ArrayUtils {
    public static <T> T invert(T[] array) {
        return reverse(array);
    }
    public static <T> T reverse(T[] names) {
        Collections.reverse(Arrays.asList(names));
        return (T) names;
    }
}
Answer 1

Можно свой компаратор написать, чтоб массив инвертировать:

Integer[] arr = new Integer[]{10, 6, 2, 3};
Arrays.sort(arr, (o1, o2) -> -1);
System.out.println(Arrays.toString(arr)); // [3, 2, 6, 10]

Или циклом можно обработать как массив объектов, так и массив примитивов:

int[] arr = new int[]{10, 6, 2, 3};
for (int i = 0; i < arr.length / 2; i++) {
    int temp = arr[i];
    arr[i] = arr[arr.length - i - 1];
    arr[arr.length - i - 1] = temp;
}
System.out.println(Arrays.toString(arr)); // [3, 2, 6, 10]
Answer 2

Вы создаете список на лету и тут же "теряете" его после отработки Collections.reverse()

public static <T> T reverse(T[] names) {
    List<T> list = Arrays.asList(names);
    Collections.reverse(list);
    return Arrays.toArray(list);
}
READ ALSO
CopyOnWriteArrayList&lt;Integer&gt; в итерации

CopyOnWriteArrayList<Integer> в итерации

Столкнулась с такой проблемой

211
Как часто числа 0 и 1 встречаются в массиве

Как часто числа 0 и 1 встречаются в массиве

Создал массив из 10 чисел: 0 и 1, инициализировал каждый индекс массива как 0 или 1Написал цикл:

193
wait() и notify() в java

wait() и notify() в java

Такое делоЕсть список с пассажирами, которые ждут, пока каждого разбудит поток

257