Saltar al contenido

Invertir una matriz en Java

septiembre 23, 2021
gfg 200x200 min

La inversión de una matriz en Java se puede hacer con tres métodos simples.
Ejemplos:

Input : 1, 2, 3, 4, 5
Output :5, 4, 3, 2, 1

Input :  10, 20, 30, 40
Output : 40, 30, 20, 10

los primer método es como sigue:
(i) Ingrese el tamaño de la matriz y los elementos de la matriz.
(ii) Considere una función inversa que toma los parámetros: la matriz (digamos arr) y el tamaño de la matriz (digamos n).
(iii) Dentro de la función, se inicializa una nueva matriz (con el tamaño de matriz 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.
(iv) De esta manera, todos los elementos de la matriz arr[] se colocan al revés en la nueva matriz.
(v) Además, podemos iterar a través de la nueva matriz desde el principio e imprimir los elementos de la matriz.

Java

public class reverseArray {

    

       

    static void reverse(int a[], int n)

    {

        int[] b = new int[n];

        int j = n;

        for (int i = 0; i < n; i++) {

            B[j - 1] = a[i];

            j = j - 1;

        }

        

        System.out.println("Reversed array is: n");

        for (int k = 0; k < n; 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

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

Java

public class arrayReverse {

    

      

    static void reverse(int a[], int n)

    {

        int i, k, t;

        for (i = 0; i < n / 2; i++) {

            t = a[i];

            a[i] = a[n - i - 1];

            a[n - i - 1] = t;

        }

        

        System.out.println("Reversed array is: n");

        for (k = 0; k < n; k++) {

            System.out.println(a[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

los tercer método es utilizar la función 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 invirtiendo la lista.

Java

import java.util.*;

public class reversingArray {

    

    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]

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 decreciente de la longitud de la matriz, convertir StringBuilder en una cadena y volver a dividir en una matriz.

Java

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--) {

          inverted.append (arr[i - 1]).adjuntar(" ");

      };

      

      String[] reversedArray = reversed.toString().split(" ");

      

      System.out.println(Arrays.toString(reversedArray));

    }

}

¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

close