Помогите выполнить задание, ломаю голову уже 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;
}
}
Можно свой компаратор написать, чтоб массив инвертировать:
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]
Вы создаете список на лету и тут же "теряете" его после отработки Collections.reverse()
public static <T> T reverse(T[] names) {
List<T> list = Arrays.asList(names);
Collections.reverse(list);
return Arrays.toArray(list);
}
Создал массив из 10 чисел: 0 и 1, инициализировал каждый индекс массива как 0 или 1Написал цикл:
Такое делоЕсть список с пассажирами, которые ждут, пока каждого разбудит поток