logo

Odwróć tablicę w Javie

Biorąc pod uwagę tablicę, zadaniem jest odwrócenie danej tablicy w Javie.

Przykłady:



Input : 1, 2, 3, 4, 5 Output :5, 4, 3, 2, 1 Input : 10, 20, 30, 40 Output : 40, 30, 20, 10>

Aby poznać podstawy Array, zobacz Struktura danych Array.

Podchodzi do

Istnieje wiele podejść do odwracania tablicy w Javie. To są:

  • Korzystanie z tablicy Temp
  • Korzystanie z zamiany
  • Korzystanie z metody Collections.reverse().
  • Korzystanie z metody StringBuilder.append().

1. Korzystanie z tablicy Temp

The pierwsza metoda następująco:



  • Wprowadź rozmiar tablicy i elementy tablicy.
  • Rozważmy odwrotną funkcję, która pobiera parametry - tablicę (powiedzmy arr) i rozmiar tablicy (powiedzmy n).
  • Wewnątrz funkcji inicjowana jest nowa tablica (o rozmiarze tablicy pierwszej, arr). Tablica arr[] jest iterowana od pierwszego elementu, a każdy element tablicy arr[] jest umieszczany w nowej tablicy od tyłu, tzn. nowa tablica jest iterowana od jej ostatniego elementu.
  • W ten sposób wszystkie elementy tablicy arr[] zostaną umieszczone odwrotnie w nowej tablicy.
  • Co więcej, możemy iterować po nowej tablicy od początku i drukować elementy tablicy.

Jawa






// 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); } }>

>

>

Wyjście

Reversed array is: 50 40 30 20 10>

2. Korzystanie z zamiany

The druga metoda używa podobnego kodu do wprowadzania i drukowania tablicy. Nie tworzymy jednak nowej tablicy jak powyższa metoda. Zamiast tego odwracamy samą oryginalną tablicę. W tej metodzie zamieniamy elementy tablicy. Pierwszy element zostaje zamieniony z ostatnim elementem. Drugi element jest zamieniany z przedostatnim elementem i tak dalej.
Rozważmy na przykład tablicę [1, 2, 3,…., n-2, n-1, n]. Zamieniamy 1 z n, 2 z n-1, 3 z n-2 i dalej.

Jawa

hashset vs hashmap




// 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); } }>

>

>

Wyjście

Reversed array is: 50 40 30 20 10>

3. Korzystanie z metody Collections.reverse().

The trzecia metoda jest użycie tej funkcji java.util.Collections.reverse (lista list) metoda. Ta metoda odwraca elementy na określonej liście. Dlatego najpierw konwertujemy tablicę na listę, używając java.util.Arrays.asList(tablica) a następnie odwróć listę.

Jawa




// 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);> >}> }>

>

>

Wyjście

[50, 40, 30, 20, 10]>

4. Korzystanie z metody StringBuilder.append().

Jak czwarta metoda , Jeśli pracujesz z tablicą String, możemy użyć StringBuilder i dołączyć do każdego elementu tablicy pętlę for zmniejszającą długość tablicy, przekonwertować StringBuilder na ciąg i podzielić z powrotem na tablicę.

Jawa




// 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));> >}> }>

>

>

Wyjście

[World, Hello]>