Dato un array, il compito è invertire l'array dato in Java.
Esempi:
Input : 1, 2, 3, 4, 5 Output :5, 4, 3, 2, 1 Input : 10, 20, 30, 40 Output : 40, 30, 20, 10>
Per conoscere le basi di Array, fare riferimento a Array Data Structure.
Si avvicina
Esistono numerosi approcci per invertire un array in Java. Questi sono:
- Utilizzando l'array temporaneo
- Utilizzo dello scambio
- Utilizzando il metodo Collections.reverse()
- Utilizzando il metodo StringBuilder.append()
1. Utilizzando l'array temporaneo
IL primo metodo è come segue:
- Prendi in input la dimensione dell'array e gli elementi dell'array.
- Considera una funzione inversa che accetta i parametri: l'array (ad esempio arr) e la dimensione dell'array (ad esempio n).
- All'interno della funzione viene inizializzato un nuovo array (con la dimensione dell'array del primo, arr). L'array arr[] viene ripetuto dal primo elemento e ciascun elemento dell'array arr[] viene inserito nel nuovo array dal retro, ovvero il nuovo array viene ripetuto dal suo ultimo elemento.
- In questo modo tutti gli elementi dell'array arr[] vengono posizionati al contrario nel nuovo array.
- Inoltre, possiamo scorrere il nuovo array dall'inizio e stampare gli elementi dell'array.
Giava
// 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); } }> |
>
>Produzione
volpe contro lupo
Reversed array is: 50 40 30 20 10>
2. Utilizzo dello scambio
IL secondo metodo utilizza un codice simile per l'immissione e la stampa dell'array. Tuttavia, non creiamo un nuovo array come il metodo sopra. Invece, invertiamo l'array originale stesso. In questo metodo, scambiamo gli elementi dell'array. Il primo elemento viene scambiato con l'ultimo elemento. Il secondo elemento viene scambiato con il penultimo elemento e così via.
Ad esempio, considera l'array [1, 2, 3, …., n-2, n-1, n]. Scambiamo 1 con n, 2 con n-1, 3 con n-2 e oltre.
Giava
// 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); } }> |
>
>Produzione
Reversed array is: 50 40 30 20 10>
3. Utilizzo del metodo Collections.reverse()
IL terzo metodo è usare la funzione java.util.Collections.reverse(Elenco elenco) metodo. Questo metodo inverte gli elementi nell'elenco specificato. Quindi, convertiamo prima l'array in un elenco utilizzando java.util.Arrays.asList(array) e poi invertire l'elenco.
Giava
// 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);> >}> }> |
>
>Produzione
[50, 40, 30, 20, 10]>
4. Utilizzo del metodo StringBuilder.append()
Come un quarto metodo , Se stai lavorando con un array String, possiamo utilizzare uno StringBuilder e aggiungere ogni elemento dell'array con un ciclo for decrementante dalla lunghezza dell'array, convertire StringBuilder in una stringa e dividerlo nuovamente in un array.
Giava
variabile bash
// 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));> >}> }> |
>
>Produzione
[World, Hello]>