Массив обратном порядке java

3 Methods to Reverse an Array in Java

To implement array reverse in Java Programming, the array size and thereafter the array elements have to be entered by the user. In the next step, the array elements are swapped. A variable (temp) of the same type is created for placing the first element in variable temp, then the element coming last is placed in the first, temp is placed in the last, and so forth – the process continues till the entire array is reversed.

In Java, mostly primitive types of arrays — int, long, string and double arrays – are required to be reversed for the purpose of specific codes. Apache commons lang, which is an open source library attributed to the Apache software foundation, provides class ArrayUtils. This interesting class is used in association with the java.util.Arrays class for playing with object and primitive arrays in Java. The API provides easy-to-use overloaded methods for reversing different types of arrays in Java – be it int, log, double, float or object arrays.

Read on to know about this and other methods pertaining to how to reverse an array in java – the right way.

Reverse an Array in JavaHow to Reverse Array in Java with Examples

There are many methods to reverse an array in Java. You may consider writing a function on your own that loops across the array and keep swapping all the elements until the full array is sorted. In another method of array reverse in Java, an array can be converted into an ArrayList, after which a specific code can be used for reversing the ArrayList. Yet another method of array reverse in Java comprises of using the Apache Commons ArrayUtils.reverse() program for the sake of reversing any kind of Java array. This method can be overloaded for the cause of reversing short, long, int, byte, float, double or string type arrays. Users may like to implement any method to reverse an array in java as per their choice and nature of the array in the reckoning.

Method 1: Reverse Array in Place

In this simple means of reversing a Java array, the algorithm is made to loop over the array and keeps swapping the elements until the midpoint is reached. As no additional buffers are used, this method of reversing an array in Java is also referred to as an array in-place.

Читайте также:  How to install all python modules

The time complexity of the above algorithm is O(n/2). In other words, it is O(N) as the iteration across the loop takes place till its midpoint only. This method provides an ideal solution for interviewees as the remaining two methods are apt for practical purposes.

Method 2 — Using an ArrayList

This particular method of array reverse in Java converts the given array into an ArrayList and then utilizes the Collections.reverse() method that takes up the items in the list and reverses the elements in linear time. Arrays of int, string or other types can be reversed with the help of this method.The following example depicts a reversal of a string type array in Java:

//Simple Java Program to reverse a string array import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class ArrayReverse < public static void main(String args[]) < String[] arrayColor = ; System.out.println("Array Before: " + Arrays.toString(arrayColor) ); List arrayNewColor = Arrays.asList(arrayColor); Collections.reverse(arrayNewColor); String[] reversed = arrayNewColor.toArray(arrayColor); System.out.println("Array Reverse: " + Arrays.toString(reversed) ); > >

Array Before: [Red, Green, Blue, Orange, Yellow]

Array Reverse: [Yellow, Orange, Blue, Green, Red]

As is evident from the output provided above, the original order of elements has been reversed in the final array as returned by the toArray() method of the List class.

Method 3 — By using ArrayUtils.reverse()

Apache commons refers is a collection of numerous utility libraries used for effective Java development. This library is often added by default by coders to their projects with a view of complementing JDK. The Apache Commons Lang offers class ArrayUtils that comprises of overloaded reverse() methods for the cause of reversing int, float as well as object type arrays in Java. This particular method reverses any given array in its place; in other words, a new array is not created for the purposes of array reverse in the Java code.

The following code will aptly depict this method:

import java.util.Arrays; import org.apache.commons.lang3.ArrayUtils; public class Byarrayutilis < public static void main(String args[]) < String[] arraycolor = ; System.out.println("Array before: " + Arrays.toString(arraycolor)); ArrayUtils.reverse(arraycolor); System.out.println("Array after: " + Arrays.toString(arraycolor)); > >

Array Before: [Red, Green, Blue, Orange, Yellow]

Array Reverse: [Yellow, Orange, Blue, Green, Red]

The ArrayUtils class belongs to Apache Commons Lang. Commons-lang3-3.4.jar has to be added into the application’s class path for this method to take place. Alternatively, in the case of Maven is being used then the following dependency has to be included in the pom.xml file.

 org.apache.commons commons-lang3 3.4 

How do I Print reverse of an array in Java?

At the very onset, values have to be provided to the array that needs to be reversed in Java.

Next, the loop counter has to be initialized. This initialization process can take place from within the loop structure. The loop can be defined as:

for (int i = var.length - 1; i >= 0; --i)

The output is 321 that will be printed to the console.

Читайте также:  End line character python

The above-mentioned methods go a long way in helping coders reverse int & String array in Java. Reverse array in Java can be appropriately implemented in line with the above three methods. In case you have to answer an interview question pertaining to a java program to reverse an array then use the in-place algorithm. The others methods include usage of the ArrayList class and the utility method ArrayUtils.reverse() belonging to the Apache commons lang library. Choose the method that applies to your reverse array in java programming needs in the best possible way!

  • What is Java?
  • Java Training Tutorials for Beginners
  • How Java Programming Works
  • Polymorphism in Java
  • Abstract Class vs Interface
  • Decimal to Binary
  • Comparable vs Comparator
  • Difference between AWT and Swing with Comparison Chart
  • Remove Duplicates from Array
  • Difference between Error and Exception
  • Difference between Array and ArrayList
  • Java Calculator
  • Difference between Throw and Throws
  • Association, Aggregation and Composition in Java
  • Error Could not find or load main class
  • Difference between SDM and JSPM
  • Java Program using Eclipse IDE
  • Java Multithreading Interview Questions
  • Rock Paper Scissors Java
  • Java Interview Questions

Источник

Как перевернуть массив в 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, поэтому его легко импортировать и запускать как есть.

Источник

Распечатать содержимое массива в обратном порядке в 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. Создайте перевернутую копию

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

Источник

Оцените статью