logo

Obrátiť pole v jazyku Java

Dané pole je úlohou zvrátiť dané pole v Jave.

Príklady:



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

Ak chcete vedieť o základoch Array, pozrite si Štruktúra údajov poľa.

Prístupy

Existuje mnoho prístupov na zvrátenie poľa v Jave. Toto sú:

  • Použitie poľa Temp
  • Pomocou výmeny
  • Použitie metódy Collections.reverse().
  • Pomocou metódy StringBuilder.append().

1. Použitie poľa Temp

The prvý spôsob je nasledujúca:



  • Zoberte vstup veľkosti poľa a prvkov poľa.
  • Uvažujme spätnú funkciu, ktorá preberá parametre – pole (povedzme arr) a veľkosť poľa (povedzme n).
  • Vo vnútri funkcie sa inicializuje nové pole (s veľkosťou poľa prvého poľa, arr). Pole arr[] sa iteruje od prvého prvku a každý prvok poľa arr[] sa umiestni do nového poľa zozadu, t. j. nové pole sa iteruje od svojho posledného prvku.
  • Týmto spôsobom sa všetky prvky poľa arr[] umiestnia do nového poľa opačne.
  • Ďalej môžeme iterovať nové pole od začiatku a vytlačiť prvky poľa.

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

>

>

Výkon

Reversed array is: 50 40 30 20 10>

2. Použitie Swapping

The druhý spôsob používa podobný kód na zadávanie a tlač poľa. Nevytvárame však nové pole ako vyššie uvedená metóda. Namiesto toho obrátime samotné pôvodné pole. Pri tejto metóde zamieňame prvky poľa. Prvý prvok je zamenený za posledný prvok. Druhý prvok sa vymení za predposledný atď.
Uvažujme napríklad pole [1, 2, 3, …., n-2, n-1, n]. Prehodíme 1 s n, 2 s n-1, 3 s n-2 a ďalej.

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

>

>

Výkon

Reversed array is: 50 40 30 20 10>

3. Použitie metódy Collections.reverse().

The tretí spôsob je použiť funkciu java.util.Collections.reverse(zoznam zoznamu) metóda. Táto metóda obráti prvky v zadanom zozname. Pole teda najskôr skonvertujeme na zoznam pomocou java.util.Arrays.asList(pole) a potom otočte zoznam.

Java

spracovanie výnimiek v jazyku 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);> >}> }>

>

>

Výkon

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

4. Použitie metódy StringBuilder.append().

Ako štvrtá metóda , Ak pracujete s poľom String, môžeme použiť StringBuilder a pripojiť ku každému prvku poľa cyklus for, ktorý sa znižuje z dĺžky poľa, skonvertovať StringBuilder na reťazec a rozdeliť späť na pole.

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

>

>

Výkon

[World, Hello]>