logo

Reversere en matrise i Java

Gitt en matrise, er oppgaven å reversere den gitte matrisen 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 å vite om det grunnleggende om Array, se Array Data Structure.

tilnærminger

Det er mange måter å reversere en matrise i Java. Disse er:

  • Bruker Temp array
  • Bruker bytte
  • Bruker metoden Collections.reverse().
  • Bruker StringBuilder.append() metoden

1. Bruke Temp array

De første metode er som følgende:



  • Ta inn størrelsen på matrisen og elementene i matrisen.
  • Tenk på en funksjonsrevers som tar parametrene-matrisen (si arr) og størrelsen på matrisen (si n).
  • Inne i funksjonen initialiseres en ny matrise (med matrisestørrelsen til den første matrisen, arr). Arrayen arr[] itereres fra det første elementet, og hvert element i array arr[] plasseres i den nye arrayen fra baksiden, dvs. den nye arrayen itereres fra sitt siste element.
  • På denne måten plasseres alle elementene i matrisen arr[] omvendt i den nye matrisen.
  • Videre kan vi iterere gjennom den nye matrisen fra begynnelsen og skrive ut elementene i matrisen.

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

>

>

Produksjon

Reversed array is: 50 40 30 20 10>

2. Bruke bytte

De andre metoden bruker en lignende kode for inntasting og utskrift av matrisen. Vi oppretter imidlertid ikke en ny matrise som metoden ovenfor. I stedet reverserer vi selve den opprinnelige matrisen. I denne metoden bytter vi elementene i matrisen. Det første elementet byttes med det siste elementet. Det andre elementet byttes med det siste elementet og så videre.
Tenk for eksempel på 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

int i streng




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

>

>

Produksjon

Reversed array is: 50 40 30 20 10>

3. Bruke metoden Collections.reverse().

De tredje metode er å bruke funksjonen java.util.Collections.reverse(Listeliste) metode. Denne metoden reverserer elementene i den angitte listen. Derfor konverterer vi matrisen til en liste først ved å bruke java.util.Arrays.asList(array) og deretter snu listen.

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

>

>

Produksjon

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

4. Bruke StringBuilder.append() metoden

Som en fjerde metode , Hvis du arbeider med en String-array, kan vi bruke en StringBuilder og legge til hvert array-element med en for-løkke som reduseres fra arrayens lengde, konvertere StringBuilder til en streng og dele tilbake til en 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));> >}> }>

konvertere fra char til int java
>

>

Produksjon

[World, Hello]>