Узнайте, как перевернуть или инвертировать массив в Java. Перевернутый массив имеет тот же размер, что и исходный массив, и содержит те же элементы, но в обратном порядке.
String[] array = {"A", "B", "C", "D", "E"};String[] reveresedArray = {"E", "D", "C", "B", "A"};
1. API Collections.reverse()
Самый простой способ перевернуть массив — использовать существующие API, созданные именно для этой цели. Метод Collections.reverse() — это такой API. Этот метод переворачивает элементы в списке, поэтому мы должны сначала преобразовать массив в список с помощью java.util.Arrays.asList(array), а затем перевернуть список. Он также перевернет элементы резервного массива.
Обратите внимание, что метод reverse() меняет порядок элементов в исходном массиве на противоположный. Поэтому, если вы хотите сохранить исходный массив без изменений, рассмотрите возможность его клонирования в первую очередь.
Строка[] массив = {"A", "B", "C", "D", "E"};Коллекции.reverse(Массивы.asList(массив));System.out.println(Arrays.toString(array)); //[E, D, C, B, A]
Предупреждение: Обратите внимание, что API reverse() не работает с примитивными массивами, поскольку Arrays.asList(intArray) вернет List<int[]>, единственным элементом которого является исходный массив. Таким образом, нечего реверсировать.
int[] массив = {1, 2, 3};Collections.reverse(Arrays.asList(array)); //Не переворачивает массив
2. Перестановка элементов массива в цикле For
Другой простой и понятный способ — пройтись по массиву, меняя местами элементы из начальной позиции с элементами из последней позиции.
Например, данное изображение описывает процесс обмена, где у нас есть массив из 5 элементов.
- В первой итерации мы меняем местами первый и последний элементы.
- Во второй итерации мы меняем местами второй и предпоследний элементы.
- Та же перестановка происходит в цикле for, пока мы не достигнем середины массива; в этот момент массив перевернут.

String[] array = {"A", "B", "C", "D", "E"};for(int i = 0; i < array.length / 2; i++) {String temp = array[i];array[i] = array[array.length - 1 - i];array[array.length - 1 - i] = temp;}System.out.println(Arrays.toString(array)); //[E, D, C, B, A]
3. Реверсирование массива с использованием Stream API
При таком подходе мы будем считывать элементы массива в обратном порядке, начиная с последней позиции, а затем сохраним все элементы в новом массиве.
При таком подходе исходный массив остается неизменным.
final String[] arr = new String[]{"A","B","C","D","E"};Object[] reversedArr = IntStream.rangeClosed(1, array.length).mapToObj(i -> arr[arr.length - i]).toArray();System.out.println(Arrays.toString(reversedArr)); //[E, D, C, B, A]
4. ArrayUtils.reverse()
Если наше приложение уже зависит от библиотеки Apache Commons Lang, то у него есть превосходный и прямой API для реверсирования любого типа массива.
String[] array = {"A", "B", "C", "D", "E"};ArrayUtils.reverse(arr);System.out.println(Arrays.toString(arr)); //[E, D, C, B, A]
5. Заключение
В этом коротком уроке мы научились переворачивать массив, используя разные техники. Мы научились использовать цикл for, менять элементы местами, API коллекций, а также класс ArrayUtils от Apache Commons.
В любом из подходов, если вы хотите сохранить исходный массив неизменным, сначала клонируйте массив, а затем примените к нему обратную логику.