Având în vedere o matrice, sarcina este de a inversa matricea dată în Java.
Exemple:
Input : 1, 2, 3, 4, 5 Output :5, 4, 3, 2, 1 Input : 10, 20, 30, 40 Output : 40, 30, 20, 10>
Pentru a afla elementele de bază ale Array, consultați Structura datelor Array.
Abordari
Există numeroase abordări pentru a inversa o matrice în Java. Acestea sunt:
- Utilizarea matricei Temp
- Folosind Schimbarea
- Folosind metoda Collections.reverse().
- Folosind metoda StringBuilder.append().
1. Utilizarea matricei Temp
The prima metoda este după cum urmează:
- Introduceți dimensiunea matricei și elementele matricei.
- Luați în considerare o funcție inversă care ia parametrii - matricea (să spunem arr) și dimensiunea matricei (să spunem n).
- În interiorul funcției, o nouă matrice (cu dimensiunea matricei primei matrice, arr) este inițializată. Matricea arr[] este iterată de la primul element, iar fiecare element al matricei arr[] este plasat în noua matrice din spate, adică noua matrice este iterată de la ultimul său element.
- În acest fel, toate elementele matricei arr[] sunt plasate invers în noul tablou.
- Mai mult, putem itera prin noua matrice de la început și tipărim elementele matricei.
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); } }> |
>
>
cum se convertesc șirul în int javaIeșire
Reversed array is: 50 40 30 20 10>
2. Folosind Schimbarea
The a doua metodă folosește un cod similar pentru introducerea și imprimarea matricei. Cu toate acestea, nu creăm o nouă matrice ca metoda de mai sus. În schimb, inversăm matricea originală în sine. În această metodă, schimbăm elementele matricei. Primul element este schimbat cu ultimul element. Al doilea element este schimbat cu penulul element și așa mai departe.
De exemplu, luăm în considerare tabloul [1, 2, 3, …., n-2, n-1, n]. Schimbăm 1 cu n, 2 cu n-1, 3 cu n-2 și mai departe.
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); } }> |
>
>Ieșire
Reversed array is: 50 40 30 20 10>
3. Folosind metoda Collections.reverse().
The a treia metodă este să folosești funcția java.util.Collections.reverse(Lista liste) metodă. Această metodă inversează elementele din lista specificată. Prin urmare, convertim mai întâi matricea într-o listă folosind java.util.Arrays.asList(matrice) și apoi inversați lista.
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);> >}> }> |
>
>Ieșire
[50, 40, 30, 20, 10]>
4. Folosind metoda StringBuilder.append().
Ca a patra metodă , Dacă lucrați cu o matrice String, putem folosi un StringBuilder și adăugați fiecare element de matrice cu o descreștere a buclei for de la lungimea matricei, convertim StringBuilder-ul într-un șir și împărțim înapoi într-o matrice.
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>>>> >reversed.append(arr[i ->1>]).append(>' '>);> >};> > >String[] reversedArray = reversed.toString().split(>' '>);> > >System.out.println(Arrays.toString(reversedArray));> >}> }> |
>
>Ieșire
[World, Hello]>