Вывод обратного массива java

Reverse an Array in Java

Learn how to reverse or invert an array in Java. A reversed array is of equal size to the original array and contains the same items but in the reverse order.

String[] array = ; String[] reveresedArray = ;

The easiest way to reverse the array is to use the existing APIs built for this very purpose. Collections.reverse() method is such an API. This method reverses the elements in a list, so we must convert the array into a list first by using java.util.Arrays.asList(array) and then reverse the list. It will reverse the backing array items as well.

Note that the reverse() method reverses the order of the items in the original array. So if you want to keep the original array unchanged, consider cloning the array first.

String[] array = ; Collections.reverse(Arrays.asList(array)); System.out.println(Arrays.toString(array)); //[E, D, C, B, A]

Warning: Note that reverse() API does not work with primitive arrays because Arrays.asList(intArray) will return a List whose only element is the original array. Thus there is nothing to reverse.

int[] array = ; Collections.reverse(Arrays.asList(array)); //Does not reverses the array

2. Swapping Array Elements in For Loop

Another simple and straightforward way is to iterate through the array swapping them from the beginning position with the elements in the last position.

For example, the given image describes the swapping process where we have an array of 5 elements.

  • In the first iteration, we swap the first and last elements.
  • In the second iteration, we swap the second and second-last elements.
  • The same swapping goes on in the for-loop until we hit the middle of the array, at this time the array has been reversed.

String[] array = ; 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. Reversing Array Using Stream API

In this approach, we will use read the array elements in reverse starting from last position, and then we will store all the elements in a new array.

The original array remains unchanged in this approach.

final String[] arr = new String[]; 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]

If our application has an existing dependency on Apache Commons Lang library then it has an excellent and direct API to reverse any kind of array.

String[] array = ; ArrayUtils.reverse(arr); System.out.println(Arrays.toString(arr)); //[E, D, C, B, A]

In this short tutorial, we learned to reverse an array using different techniques. We learned to use for-loop, swapping items, Collections API and also the Apache Commons’s ArrayUtils class.

In any of the approaches, if you want to keep the original array unchanged, clone the array first and then apply the reverse logic to it.

Источник

Распечатать содержимое массива в обратном порядке в Java

В этом посте мы обсудим, как распечатать содержимое массива в обратном порядке в Java.

1. Распечатать массив в обратном порядке

Простое решение для печати содержимого массива в обратном порядке — использование простого цикла for. Цикл начинается с конца массива, печатает текущий элемент и уменьшает индекс на 1 на каждой итерации.

Вот версия, использующая потоки Java 8:

2. Обратный массив на месте

Если вам нужно перевернуть массив на месте, вы можете использовать любой из следующих методов:

а. Использование цикла For

Идея состоит в том, чтобы поменять местами элементы, начиная с обоих концов массива, пока они не пересекутся. Это легко сделать с помощью цикла for:

результат:

[5, 4, 3, 2, 1]

В приведенном выше решении используются два индекса, по одному для каждого конца массива. Код можно легко изменить, чтобы использовать только один индекс:

результат:

[5, 4, 3, 2, 1]

б. Использование библиотеки Apache Commons Lang

Другой хорошей альтернативой обратному порядку массива является использование Apache Commons Lang. ArrayUtils.add() метод, который перегружен для всех типов примитивов и массивов объектов.

результат:

[5, 4, 3, 2, 1]

в. Использование Guava

С помощью Guava вы можете вызвать Ints.asList() метод для получения списка фиксированного размера, поддерживаемого указанным массивом. Затем позвоните в Collections.reverse() метод, чтобы изменить порядок элементов в списке.

результат:

[5, 4, 3, 2, 1]

3. Создайте перевернутую копию

Если вам не нужно изменять исходный массив, следующее решение создает его обратную копию. Идея состоит в том, чтобы создать новый массив того же размера, что и исходный массив. Затем заполните новые массивы элементами исходного массива в обратном порядке, используя цикл.

Источник

4.4. Java примеры – Как перевернуть массив или вывести элементы массива в обратном порядке

Как перевернуть массив или вывести элементы массива в обратном порядке в Java?

Решение

В следующем примере переворачиваем элементы массива в Java с помощью метода Collections.reverse(ArrayList), т.е. выводим массив в обратном порядке.

import java.util.ArrayList; import java.util.Collections; public class Main < public static void main(String[] args) < ArrayList arrayList = new ArrayList(); arrayList.add("А"); arrayList.add("Б"); arrayList.add("В"); arrayList.add("Г"); arrayList.add("Д"); System.out.println("До обратного порядка: " + arrayList); Collections.reverse(arrayList); System.out.println("После обратного порядка: " + arrayList); >> 

Результат

Вышеприведенный пример кода даст следующий результат:

До обратного порядка: [А, Б, В, Г, Д] После обратного порядка: [Д, Г, В, Б, А] 

Следующий пример является еще одним примером реверса (обратным порядком) массива.

public class HelloWorld < public static void main(String[] args) < int[] numbers = < 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 >; System.out.println("Массив перед реверсом:"); for (int i = 0; i < numbers.length; i++) < System.out.print(numbers[i] + " "); >for (int i = 0; i < numbers.length / 2; i++) < int temp = numbers[i]; numbers[i] = numbers[numbers.length - 1 - i]; numbers[numbers.length - 1 - i] = temp; >System.out.println("\nМассив после реверса:"); for (int i = 0; i < numbers.length; i++) < System.out.print(numbers[i] + " "); >> > 

Вышеприведенный пример кода даст следующий результат:

Массив перед реверсом: 1 2 3 4 5 6 7 8 9 10 Массив после реверса: 10 9 8 7 6 5 4 3 2 1 

Оглавление

  • 1. Java примеры – Использование кода на практике
  • 2. Java примеры – Окружающая среда
  • 2.1. Java примеры – Скомпилировать файл
  • 2.2. Java примеры – Установить путь к нескольким классам
  • 2.3. Java примеры – Отладка java-файла
  • 2.4. Java примеры – Установить путь к классу
  • 2.5. Java примеры – Просмотреть текущий путь класса
  • 2.6. Java примеры – Установить назначение файла класса
  • 2.7. Java примеры – Запустить скомпилированный java-файл класса
  • 2.8. Java примеры – Узнать версию Java
  • 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
  • 3. Java примеры – Строки
  • 3.1. Java примеры – Сравнить две строки
  • 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
  • 3.3. Java примеры – Удалить нужный символ из строки
  • 3.4. Java примеры – Заменить символ в строке
  • 3.5. Java примеры – Вывод в обратном порядке
  • 3.6. Java примеры – Нахождение символа или слова в строке
  • 3.7. Java примеры – Разбиение строки на слова и символы
  • 3.8. Java примеры – Преобразование строки в верхний регистр
  • 3.9. Java примеры – Найти слово в строке
  • 3.10. Java примеры – Сравнить производительность создания строки
  • 3.11. Java примеры – Оптимизировать создание строк
  • 3.12. Java примеры – Форматирование строк
  • 3.13. Java примеры – Конкатенация строк
  • 3.14. Java примеры – Определить код Юникода символа в строке
  • 3.15. Java примеры – Буферизация строк
  • 4. Java примеры – Массивы
  • 4.1. Java примеры – Сортировка массива и поиск элемента
  • 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
  • 4.3. Java примеры – Размер двумерного массива
  • 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
  • 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
  • 4.6. Java примеры – Найти максимальный и минимальный элемент массива
  • 4.7. Java примеры – Соединить два массива в один
  • 4.8. Java примеры – Как заполнить массив числами
  • 4.9. Java примеры – Увеличить массив после инициализации
  • 4.10. Java примеры – Сравнение двух массивов
  • 4.11. Java примеры – Удаление элемента из массива
  • 4.12. Java примеры – Удаление массива из другого массива
  • 4.13. Java примеры – Одинаковые элементы массивов
  • 4.14. Java примеры – Поиск в массиве
  • 4.15. Java примеры – Равенство двух массивов
  • 4.16. Java примеры – Сравнить массивы
  • 5. Java примеры – Дата и время
  • 5.1. Java примеры – Форматирование времени в формате AM-PM
  • 5.2. Java примеры – Получение названия и номера текущего месяца
  • 5.3. Java примеры – Получить текущее время в часах и минутах
  • 5.4. Java примеры – Вывести текущее время и дату
  • 5.5. Java примеры – Вывести текущее время в 24-часовом формате
  • 5.6. Java примеры – Получить текущий месяц
  • 5.7. Java примеры – Получить текущие секунды
  • 5.8. Java примеры – Получить короткое название месяца
  • 5.9. Java примеры – Получить день недели
  • 5.10. Java примеры – Добавление времени к дате
  • 5.11. Java примеры – Отображение времени в формате другой страны
  • 5.12. Java примеры – Отображение времени на разных языках
  • 5.13. Java примеры – Прокрутить часы и месяцы
  • 5.14. Java примеры – Получить номер недели и месяц в году
  • 5.15. Java примеры – Форматы текущей даты
  • 6. Java примеры – Методы
  • 6.1. Java примеры – Перезагрузка методов
  • 6.2. Java примеры – Вывод массива с использованием метода
  • 6.3. Java примеры – Решение Ханойской башни
  • 6.4. Java примеры – Последовательность чисел Фибоначчи
  • 6.5. Java примеры – Вычисление факториала числа
  • 6.6. Java примеры – Переопределение метода
  • 6.7. Java примеры – Вывод массива с использованием метода
  • 6.8. Java примеры – Использование оператора break
  • 6.9. Java примеры – Использование оператора continue
  • 6.10. Java примеры – Использование метки в методе
  • 6.11. Java примеры – Использование операторов enum и switch
  • 6.12. Java примеры – Использование конструктора enum

Источник

Как перевернуть массив в Java

Мы увидим несколько различных способов сделать это, используя чистые решения на основе Java 8 — некоторые из них изменяют существующий массив, а некоторые создают новый.

Далее мы рассмотрим два решения с использованием внешних библиотек — одно с использованием Apache Commons Lang и одно с использованием Google Guava .

2. Определение проблемы

Основная идея состоит в том, чтобы изменить порядок элементов в массиве на обратный. Итак, если задан массив:

 fruits = "apples", "tomatoes", "bananas", "guavas", "pineapples"> 
 invertedFruits = "pineapples", "guavas", "bananas", "tomatoes", "apples"> 

Давайте посмотрим, как мы можем это сделать.

3. Использование традиционного цикла for

Первый способ, которым мы могли бы подумать об инвертировании массива, — это использовать цикл for :

 void invertUsingFor(Object[] array)    for (int i = 0; i  array.length / 2; i++)    Object temp = array[i];   array[i] = array[array.length - 1 - i];   array[array.length - 1 - i] = temp;   >   > 

Как мы видим, код перебирает половину массива, меняя элементы в симметричных позициях.

Мы используем временную переменную, чтобы не потерять значение текущей позиции массива во время итерации.

4. Использование потокового API Java 8

Мы также можем инвертировать массив с помощью Stream API:

 Object[] invertUsingStreams(Object[] array)    return IntStream.rangeClosed(1, array.length)   .mapToObj(i -> array[array.length - i])   .toArray();   > 

Здесь мы используем метод IntStream.range для генерации последовательного потока чисел. Затем мы отображаем эту последовательность в индексы массива в порядке убывания.

5. Использование Collections.reverse()

Давайте посмотрим, как инвертировать массив с помощью метода Collections.reverse() :

 public void invertUsingCollectionsReverse(Object[] array)    ListObject> list = Arrays.asList(array);   Collections.reverse(list);   > 

По сравнению с предыдущими примерами, это более читабельный способ выполнения задачи.

6. Использование Apache Commons Lang

Другой вариант инвертирования массива — использовать библиотеку Apache Commons Lang . Чтобы использовать его, мы должны сначала включить библиотеку в качестве зависимости:

 dependency>   groupId>org.apache.commonsgroupId>   artifactId>commons-lang3artifactId>   version>3.12.0version>   dependency> 

Последнюю версию Commons Lang можно найти на Maven Central .

Давайте используем класс ArrayUtils для инвертирования массива:

 public void invertUsingCommonsLang(Object[] array)    ArrayUtils.reverse(array);   > 

Как мы видим, это решение довольно простое.

7. Использование Google Гуавы

Еще один вариант — использовать библиотеку Google Guava . Как и в случае с Commons Lang , мы включим библиотеку в качестве зависимости:

 dependency>   groupId>com.google.guavagroupId>   artifactId>guavaartifactId>   version>31.0.1-jreversion>   dependency> 

Последнюю версию можно найти на Maven Central .

Затем мы можем использовать обратный метод в классе Lists Guava, чтобы инвертировать массив: «

 public Object[] invertUsingGuava(Object[] array)    ListObject> list = Arrays.asList(array);   ListObject> reversed = Lists.reverse(list);   return reversed.toArray();   > 

8. Заключение

В этой статье мы рассмотрели несколько различных способов инвертирования массива в Java. Мы показали несколько решений, использующих только ядро Java, и два других решения, использующих сторонние библиотеки — Commons Lang и Guava .

Все примеры кода, показанные здесь, можно найти на GitHub — это проект Maven, поэтому его легко импортировать и запускать как есть.

Источник

Читайте также:  Питон удалить символ конца строки
Оцените статью