Зворотний масив у Java
Дано масив, завдання полягає в тому, щоб повернути заданий масив у Java.
приклади:
Input : 1, 2, 3, 4, 5 Output :5, 4, 3, 2, 1 Input : 10, 20, 30, 40 Output : 40, 30, 20, 10
Щоб дізнатися про основи масиву, зверніться до структури даних масиву.
Підходи
Існує багато підходів до звернення масиву в Java. Це:
- Використання масиву Temp
- Використання свопінгу
- Використання методу Collections.reverse().
- Використання методу StringBuilder.append().
1. Використання масиву Temp
The перший спосіб полягає в наступному:
- Введіть розмір масиву та елементи масиву.
- Розглянемо функцію reverse, яка приймає параметри — масив (скажімо arr) і розмір масиву (скажімо n).
- Усередині функції ініціалізується новий масив (з розміром першого масиву arr). Масив arr[] повторюється з першого елемента, і кожен елемент масиву arr[] розміщується в новому масиві ззаду, тобто новий масив повторюється з його останнього елемента.
- Таким чином, усі елементи масиву arr[] розміщуються в новому масиві навпаки.
- Крім того, ми можемо перебирати новий масив з самого початку та друкувати елементи масиву.
Java
// Basic Java program that reverses an array> > public> class> reverseArray {> > > // function that reverses array and stores it> > // in another array> > static> void> reverse(> int> a[],> int> n)> > {> > int> [] b => new> int> [n];> > int> j = n;> > for> (> int> i => 0> ; i b[j - 1] = a[i]; j = j - 1; } // printing the reversed array System.out.println('Reversed array is:
'); for (int k = 0; k System.out.println(b[k]); } } public static void main(String[] args) { int [] arr = {10, 20, 30, 40, 50}; reverse(arr, arr.length); } }> |
Вихід
Reversed array is: 50 40 30 20 10
2. Використання Swapping
The другий спосіб використовує аналогічний код для введення та друку масиву. Однак ми не створюємо новий масив, як описано вище. Замість цього ми змінюємо вихідний масив. У цьому методі ми міняємо місцями елементи масиву. Перший елемент міняється місцями з останнім. Другий елемент міняється місцями з передостаннім і так далі.
Наприклад, розглянемо масив [1, 2, 3, …., n-2, n-1, n]. Міняємо місцями 1 на n, 2 на n-1, 3 на n-2 і далі.
Java
// Java Program that reverses array> // in less number of swaps> > public> class> arrayReverse {> > > // function swaps the array's first element with last> > // element, second element with last second element and> > // so on> > static> void> reverse(> int> a[],> int> n)> > {> > int> i, k, t;> > for> (i => 0> ; i 2; i++) { t = a[i]; a[i] = a[n - i - 1]; a[n - i - 1] = t; } // printing the reversed array System.out.println('Reversed array is:
'); for (k = 0; k System.out.println(a[k]); } } public static void main(String[] args) { int[] arr = { 10, 20, 30, 40, 50 }; reverse(arr, arr.length); } }> |
Вихід
Reversed array is: 50 40 30 20 10
3. Використання методу Collections.reverse().
The третій спосіб полягає у використанні функції java.util.Collections.reverse(Список списку) метод. Цей метод перевертає елементи в указаному списку. Отже, ми спочатку перетворюємо масив на список за допомогою java.util.Arrays.asList(масив) а потім переверніть список.
Java
// Reversing an array using Java collections> import> java.util.*;> > public> class> reversingArray {> > > // function reverses the elements of the array> > static> void> reverse(Integer a[])> > {> > Collections.reverse(Arrays.asList(a));> > System.out.println(Arrays.asList(a));> > }> > > public> static> void> main(String[] args)> > {> > Integer [] arr = {> 10> ,> 20> ,> 30> ,> 40> ,> 50> };> > reverse(arr);> > }> }> |
Вихід
[50, 40, 30, 20, 10]
4. Використання методу StringBuilder.append().
Як четвертий спосіб Якщо ви працюєте з масивом String, ми можемо використати StringBuilder і додати кожен елемент масиву за допомогою циклу for, зменшуючи довжину масиву, перетворити StringBuilder на рядок і знову розділити на масив.
Java
// Java Program for Reversing an array using StringBuilder> > import> java.util.Arrays;> > class> GFG {> > public> static> void> main (String[] args) {> > String[] arr = {> 'Hello'> ,> 'World'> };> > StringBuilder reversed => new> StringBuilder();> > > for> (> int> i = arr.length; i>> 0> ; i--) {> > reversed.append(arr[i -> 1> ]).append(> ' '> );> > };> > > String[] reversedArray = reversed.toString().split(> ' '> );> > > System.out.println(Arrays.toString(reversedArray));> > }> }> |
Вихід
[World, Hello]