logo

Invertir una matriz en Java

Dada una matriz, la tarea es invertir la matriz dada en Java.

Ejemplos:



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

Para conocer los conceptos básicos de Array, consulte Estructura de datos de matriz.

Enfoques

Existen numerosos enfoques para invertir una matriz en Java. Estos son:

  • Usando matriz temporal
  • Usando el intercambio
  • Usando el método Collections.reverse()
  • Usando el método StringBuilder.append()

1. Usando matriz temporal

El primer método es como sigue:



conversión de tipos y conversión de tipos en java
  • Ingrese el tamaño de la matriz y los elementos de la matriz.
  • Considere una función inversa que toma los parámetros: la matriz (digamos arr) y el tamaño de la matriz (digamos n).
  • Dentro de la función, se inicializa una nueva matriz (con el tamaño de la primera matriz, arr). La matriz arr[] se itera desde el primer elemento, y cada elemento de la matriz arr[] se coloca en la nueva matriz desde atrás, es decir, la nueva matriz se itera desde su último elemento.
  • De esta forma, todos los elementos de la matriz arr[] se colocan al revés en la nueva matriz.
  • Además, podemos recorrer la nueva matriz desde el principio e imprimir los elementos de la matriz.

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

>

>

Producción

Reversed array is: 50 40 30 20 10>

2. Usando el intercambio

El segundo método utiliza un código similar para ingresar e imprimir la matriz. Sin embargo, no creamos una nueva matriz como el método anterior. En lugar de eso, invertimos la matriz original. En este método, intercambiamos los elementos de la matriz. El primer elemento se intercambia con el último elemento. El segundo elemento se intercambia con el penúltimo elemento y así sucesivamente.
Por ejemplo, considere la matriz [1, 2, 3,…., n-2, n-1, n]. Intercambiamos 1 con n, 2 con n-1, 3 con n-2 y más.

glotón contra tejón

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

gimp cómo anular la selección

>

>

Producción

Reversed array is: 50 40 30 20 10>

3. Usando el método Collections.reverse()

El tercer método es usar la funcion java.util.Collections.reverse (lista de lista) método. Este método invierte los elementos de la lista especificada. Por lo tanto, primero convertimos la matriz en una lista usando java.util.Arrays.asList (matriz) y luego invertir la lista.

Java




con forma completa

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

>

>

Producción

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

4. Usando el método StringBuilder.append()

Como un cuarto método Si está trabajando con una matriz de cadenas, podemos usar un StringBuilder y agregar cada elemento de la matriz con un bucle for que disminuye la longitud de la matriz, convertir el StringBuilder en una cadena y volver a dividirlo en una matriz.

Java




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

>

>

Producción

[World, Hello]>