in

Diferentes formas de declarar e inicializar una matriz 2-D en Java

gfg 200x200 min

Una matriz con más de una dimensión se conoce como matriz multidimensional. Las matrices multidimensionales más utilizadas son las matrices 2-D y 3-D. Podemos decir que cualquier matriz de dimensiones superiores es básicamente una matriz de matrices. Un ejemplo muy común de una matriz 2D es el tablero de ajedrez. Un tablero de ajedrez es una cuadrícula que contiene 64 cajas cuadradas de 1 × 1. De manera similar, puede visualizar una matriz 2D. En una matriz 2D, cada elemento está asociado con un número de fila y un número de columna. Acceder a cualquier elemento de la matriz 2D es similar a acceder al registro de un archivo de Excel utilizando tanto el número de fila como el número de columna. Las matrices 2D son útiles al implementar un juego de Tic-Tac-Toe, Ajedrez o incluso almacenar los píxeles de la imagen.

2Darray

Declaración de la matriz 2-D en Java:

Cualquier matriz bidimensional se puede declarar de la siguiente manera:

Sintaxis:

data_type array_name[][];   (OR)     data_type[][] array_name;
  • tipo de datos: Dado que Java es un lenguaje de tipo estático (es decir, espera que sus variables se declaren antes de que se les puedan asignar valores). Entonces, especificar el tipo de datos decide el tipo de elementos que aceptará. por ejemplo, para almacenar valores enteros únicamente, el tipo de datos se declarará como int.
  • nombre_matriz: Es el nombre que se le da a la matriz 2-D. por ejemplo, asignaturas, estudiantes, frutas, departamento, etc.

Nota: Podemos escribir [ ][ ] después de data_type o podemos escribir [ ][ ] después de array_name mientras se declara la matriz 2D.

Java

import java.io.*;

class GFG {

    public static void main(String[] args)

    {

        int[][] integer2DArray;

        String[][] string2DArray;

        double[][] double2DArray;

        boolean[][] boolean2DArray;

        float[][] float2DArray;

        double[][] double2DArray;

    }

}

Inicialización de matriz 2-D en Java:

data_type[][] array_Name = new data_type[no_of_rows][no_of_columns];

El total de elementos en cualquier matriz 2D será igual a (no_of_rows) * (no_of_columns).

  • no_of_rows: El número de filas que puede almacenar una matriz. por ejemplo, no_of_rows = 3, entonces la matriz tendrá tres filas.
  • no_of_columns: El número de filas que puede almacenar una matriz. por ejemplo, no_of_columns = 4, entonces la matriz tendrá cuatro columnas.

La sintaxis anterior de inicialización de la matriz asignará valores predeterminados a todos los elementos de la matriz de acuerdo con el tipo de datos especificado.

Veamos varios enfoques para inicializar matrices 2D:

Enfoque 1

Java

import java.io.*;

class GFG {

    public static void main(String[] args)

    {

        

        

        

        int[][] integer2DArray = new int[5][3];

        System.out.println(

            "Default value of int array element: "

            + integer2DArray[0][0]);

        

        

        String[][] string2DArray = new Cuerda[4][4];

        System.out.println(

            "Default value of String array element: "

            + string2DArray[0][0]);

        

        

        boolean[][] boolean2DArray = new boolean[4][4];

        System.out.println(

            "Default value of boolean array element: "

            + boolean2DArray[0][0]);

        

        

        

        char[][] char2DArray = new char[10][10];

        System.out.println(

            "Default value of char array element: "

            + char2DArray[0][0]);

        

        int[][] arr;

        

        

        

        

        arr = new int[5][3];

        System.out.println("arr[0][0]: " + arr[0][0]);

    }

}

Nota: Cuando inicializa una matriz 2D, siempre debe especificar la primera dimensión (número de filas), pero es posible que se omita proporcionar la segunda dimensión (número de columnas).

En el fragmento de código a continuación, no hemos especificado el número de columnas. Sin embargo, el compilador de Java es lo suficientemente inteligente como para manipular el tamaño comprobando el número de elementos dentro de las columnas.

Java

import java.io.*;

class GFG {

    public static void main(String[] args)

    {

        

        

        int[][] arr = new int[][3];

        

        

        int[][] arr = new int[2][];

    }

}

Puede acceder a cualquier elemento de una matriz 2D utilizando el número de fila y el número de columna.

accessarrayelement

Enfoque 2

En el fragmento de código a continuación, no hemos especificado el número de filas y columnas. Sin embargo, el compilador de Java es lo suficientemente inteligente como para manipular el tamaño comprobando el número de elementos dentro de las filas y columnas.

Java

import java.io.*;

class GFG {

    public static void main(String[] args)

    {

        String[][] subjects = {

            { "Data Structures & Algorithms",

              "Programming & Logic", "Software Engineering",

              "Theory of Computation" },                      

            { "Thermodynamics", "Metallurgy",

              "Machine Drawing",

              "Fluid Mechanics" },                            

            { "Signals and Systems", "Digital Electronics",

              "Power Electronics" }                           

        };

        System.out.println(

            "Fundamental Subject in Computer Engineering: "

            + temas[0][0]);

        System.out.println(

            "Fundamental Subject in Mechanical Engineering: "

            + temas[1][3]);

        System.out.println(

            "Fundamental Subject in Electronics Engineering: "

            + temas[2][1]);

    }

}

Enfoque 3

Además, podemos inicializar cada elemento de la matriz por separado. Mire el fragmento de código a continuación:

Java

import java.io.*;

import java.util.*;

class GFG {

    public static void main(String[] args)

    {

        int[][] scores = new int[2][2];

        

        

        puntuaciones[0][0] = 15;

        

        

        puntuaciones[0][1] = 23;

        

        

        puntuaciones[1][0] = 30;

        

        

        puntuaciones[1][1] = 21;

        

        System.out.println("scores[0][0] = "

                           + puntuaciones[0][0]);

        System.out.println("scores[0][1] = "

                           + puntuaciones[0][1]);

        System.out.println("scores[1][0] = "

                           + puntuaciones[1][0]);

        System.out.println("scores[1][1] = "

                           + puntuaciones[1][1]);

        

        System.out.println(

            "Printing 2D array using Arrays.deepToString() method: ");

        System.out.println(Arrays.deepToString(scores));

    }

}

Enfoque 4

Usar el enfoque anterior para la inicialización de la matriz sería una tarea tediosa si el tamaño de la matriz 2D es demasiado grande. La forma eficaz es utilizar el bucle for para inicializar los elementos de la matriz en el caso de una matriz 2D grande.

Java

import java.io.*;

class GFG {

    public static void main(String[] args)

    {

        int rows = 80, columns = 5;

        int[][] marks = new int[rows][columns];

        

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

            for (int j = 0; j < columns; j++) {

                marks[i][j] = i + j;

            }

        }

        

        System.out.println("First three rows are: ");

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

            for (int j = 0; j < columns; j++) {

                System.out.printf(marks[i][j] + " ");

            }

            System.out.println();

        }       

    }

}

Podemos usar arr. La longitud se puede utilizar para encontrar el tamaño de las filas (1a dimensión) y arr[0].length puede ser para encontrar el tamaño de las columnas (2da dimensión).

Enfoque 5: (matrices irregulares)

Puede haber un escenario determinado en el que desee que cada fila tenga un número diferente de columnas. Este tipo de matriz se denomina matriz irregular.

Java

import java.io.*;

class GFG {

    public static void main(String[] args)

    {

        

        int jagged[][] = new int[2][];

        

        

        

        dentado[0] = new int[2];

        

        dentado[1] = new int[4];

        

        int count = 0;

        for (int i = 0; i < jagged.length; i++) {

            

            

            

            for (int j = 0; j < jagged[i].length; j++) {

                jagged[i][j] = count++;

            }

        }

        

        System.out.println("The values of 2D jagged array");

        for (int i = 0; i < jagged.length; i++) {

            for (int j = 0; j < jagged[i].length; j++)

                System.out.printf(jagged[i][j] + " ");

            System.out.println();

        }

    }

}

Implementación:

Veamos un programa simple para agregar dos matrices 2D:

Java

import java.io.*;

import java.util.*;

class GFG {

    public static void main(String[] args)

    {

        int[][] arr1 = { { 1, 2, 3 }, { 4, 5, 6 } };

        int[][] arr2 = { { 4, 5, 6 }, { 1, 3, 2 } };

        int[][] sum = new int[2][3];

        

        for (int i = 0; i < arr1.length; i++) {

            for (int j = 0; j 0].largo; j ++) {

                sum[i][j] = arr1[i][j] + arr2[i][j];

            }

        }

        

        System.out.println("Resultant 2D array: ");

        for (int i = 0; i < sum.length; i++) {

            System.out.println(Arrays.toString(sum[i]));

        }

    }

}

¡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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

html – ¿Es posible escribir datos en un archivo usando solo JavaScript?

edit

Allude vs Elude – Diferencia y comparación