Vend et array i Java

Givet et array, er opgaven at vende det givne array i Java.

Eksempler:

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

For at vide om det grundlæggende i Array, se Array Data Structure.

Tilgange

Der er adskillige tilgange til at vende et array i Java. Disse er:

  • Brug af Temp array
  • Brug af swapping
  • Bruger metoden Collections.reverse().
  • Bruger StringBuilder.append() metoden

1. Brug af Temp array

Det første metode er som følgende:

  • Indtast størrelsen af ​​arrayet og elementerne i arrayet.
  • Overvej en funktion omvendt, som tager parametrene - arrayet (f.eks. arr) og størrelsen af ​​arrayet (f.eks. n).
  • Inde i funktionen initialiseres et nyt array (med arraystørrelsen for det første array, arr). Array arr[] itereres fra det første element, og hvert element i array arr[] placeres i det nye array fra bagsiden, dvs. det nye array itereres fra sit sidste element.
  • På denne måde placeres alle elementerne i array arr[] omvendt i det nye array.
  • Yderligere kan vi iterere gennem det nye array fra begyndelsen og udskrive elementerne i arrayet.

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

Produktion

Reversed array is: 50 40 30 20 10 

2. Brug af swapping

Det anden metode bruger en lignende kode til indtastning og udskrivning af arrayet. Vi opretter dog ikke et nyt array som ovenstående metode. I stedet vender vi selve det originale array om. I denne metode bytter vi elementerne i arrayet. Det første element er byttet med det sidste element. Det andet element udskiftes med det sidste element og så videre.
Overvej f.eks. array [1, 2, 3, …., n-2, n-1, n]. Vi bytter 1 med n, 2 med n-1, 3 med n-2 og videre.

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

Produktion

Reversed array is: 50 40 30 20 10 

3. Brug af metoden Collections.reverse().

Det tredje metode er at bruge funktionen java.util.Collections.reverse(Listeliste) metode. Denne metode vender elementerne i den angivne liste om. Derfor konverterer vi arrayet til en liste først ved at bruge java.util.Arrays.asList(array) og vend derefter listen om.

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

Produktion

[50, 40, 30, 20, 10] 

4. Brug af StringBuilder.append() metoden

Som en fjerde metode , Hvis du arbejder med en String-array, kan vi bruge en StringBuilder og tilføje hvert array-element med en for-løkke, der dekrementerer fra arrayets længde, konvertere StringBuilder til en streng og opdele tilbage til et array.

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

Produktion

[World, Hello]