Matrices en Java

⚡ Resumen inteligente

Matrices en Java Son contenedores de tamaño fijo, basados ​​en índices, que almacenan elementos de un mismo tipo de datos en memoria contigua, lo que proporciona acceso en tiempo constante, comprobación de límites integrada y un campo de longitud que los convierte en la base de la mayoría de las colecciones de bibliotecas estándar.

  • 📦 Tamaño fijo: Un array contiene un número fijo de elementos de un solo tipo.
  • 🔢 Índice basado en cero: Los elementos van desde 0 hasta la longitud menos uno.
  • 🧩 Dos tipos: Java Tiene matrices unidimensionales y multidimensionales.
  • 🛠️ Tres pasos: Cada matriz se declara y se construye con newy se inicializó.
  • 🛡️ Comprobación de límites: La JVM lanza ArrayIndexOutOfBoundsException más allá del último espacio.
  • ↩️ Por referencia: Los cambios realizados en los elementos dentro de un método persisten para quien lo llama.
  • 📏 Campo de longitud: Cada matriz expone length para una iteración segura.

Matrices en Java

¿Que es un Java ¿Formación?

A Java matriz es una estructura de tamaño fijo que almacena elementos de un tipo de datos en memoria contigua. A cada elemento se accede mediante un índice basado en cero, por lo que el primero se encuentra en 0 y el último en length - 1. Los arreglos heredan de Object e implementar Serializable y Cloneabley puede contener tipos primitivos o referencias a objetos.

Los arreglos reemplazan largas secuencias de variables numeradas. Consideremos seis números enteros independientes:

x0 = 0;
x1 = 1;
x2 = 2;
x3 = 3;
x4 = 4;
x5 = 5;

Los mismos seis valores residen en un único array de longitud seis:

x[0] = 0;
x[1] = 1;
x[2] = 2;
x[3] = 3;
x[4] = 4;
x[5] = 5;

A loops La variable puede controlar el índice entre corchetes, por lo que tres líneas procesan cada elemento en lugar de seis copias:

for (int count = 0; count < 5; count++) {
    System.out.println(x[count]);
}

Tipos de matriz en Java

Java Los arreglos vienen en dos formas:

  1. Matriz unidimensional: una lista plana de elementos.
  2. Matriz multidimensional: una matriz de matrices, utilizada para cuadrículas y matrices.

Variables de matriz: Declaración, construcción e inicialización

Usar una matriz es una proceso de tres pasos: declarar, construir con new, luego inicializar.

1) Declarar el array

Sintaxis:

<elementType>[] <arrayName>;

or (el formato antiguo estilo C, todavía válido):

<elementType> <arrayName>[];

Ejemplo:

int[] intArray;   // canonical form: brackets on the type
int intArray2[];  // legacy C-style form, discouraged in new code

2) Construir el arreglo

Sintaxis:

arrayName = new dataType[size];

Ejemplo:

intArray = new int[10]; // defines that intArray will store 10 integer values

Declaración y construcción combinadas:

int[] intArray = new int[10];

3) Inicializar el array

intArray[0] = 1; // assigns 1 to the first element (index 0)
intArray[1] = 2; // assigns 2 to the second element (index 1)

Declarar e inicializar en un solo paso. utilizando un literal de matriz:

int[] intArray = {1, 2, 3, 4};
// initialises an integer array of length 4 where the first element is 1,
// the second element is 2, and so on.

Primer programa de arreglos en Java

Paso 1) Copia el siguiente código en un editor:

class ArrayDemo {
    public static void main(String args[]) {
        int array[] = new int[7];

        for (int count = 0; count < 7; count++) {
            array[count] = count + 1;
        }

        for (int count = 0; count < 7; count++) {
            System.out.println("array[" + count + "] = " + array[count]);
        }

        // System.out.println("Length of Array  =  " + array.length);
        // array[8] = 10;
    }
}

Paso 2) Guarda, compila y ejecuta el código. Observa el resultado.

Rendimiento esperado:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

Paso 3) If x es una referencia a un array, x.length Devuelve su número de ranuras. Descomente la primera línea comentada y vuelva a ejecutar:

Length of Array  =  7

Paso 4) A diferencia de C, Java realiza comprobaciones de límites en cada acceso a la matriz. Descomente la segunda línea comentada y vuelva a ejecutar:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

Paso 5) La JVM lanza ArrayIndexOutOfBoundsExceptionEn C, el mismo acceso devolvería basura de la memoria adyacente en lugar de fallar.

Java Array: Paso por referencia

Los arrays se pasan a los métodos por referencia. El método recibe una copia de la referencia, por lo que los cambios realizados en los elementos dentro del método son visibles para quien lo llama.

Ejemplo: los arreglos se pasan por referencia.

Paso 1) Copia el siguiente código en un editor:

class ArrayDemo {
    public static void passByReference(String a[]) {
        a[0] = "Changed";
    }

    public static void main(String args[]) {
        String[] b = {"Apple", "Mango", "Orange"};
        System.out.println("Before Function Call    " + b[0]);
        ArrayDemo.passByReference(b);
        System.out.println("After Function Call    " + b[0]);
    }
}

Paso 2) Guarda, compila y ejecuta el código. Observa el resultado.

Rendimiento esperado:

Before Function Call    Apple
After Function Call    Changed

Matrices multidimensionales en Java

Las matrices multidimensionales son matrices de matrices. Añada otro conjunto de corchetes para cada dimensión. Para crear una cuadrícula entera bidimensional con cuatro filas y cinco columnas:

int[][] twoD = new int[4][5];

Solo necesitas dimensionar la primera dimensión (la de más a la izquierda) al principio. Las dimensiones restantes se pueden asignar por separado, y cada fila puede tener su propia longitud, lo que hace que Java Matrices 2D verdaderas matrices irregulares.

Ejemplo:

public class Guru99 {
    public static void main(String[] args) {
        // Create a 2-dimensional array with 4 rows and 4 columns.
        int[][] twoD = new int[4][4];

        // Assign three elements to it.
        twoD[0][0] = 1;
        twoD[1][1] = 2;
        twoD[3][2] = 3;

        System.out.print(twoD[0][0] + " ");
    }
}

Rendimiento esperado:

1

Preguntas Frecuentes

A Java Un array es un contenedor de tamaño fijo que almacena elementos de un solo tipo de dato. Se accede a cada elemento mediante un índice basado en cero, y cada array expone un campo de longitud con el número de ranuras.

Declara con int[] arr, construye con new int[size] y luego asigna por índice. Para hacer las tres cosas en una sola línea, usa un literal como int[] arr = {1, 2, 3, 4}.

Java Admite matrices unidimensionales y multidimensionales. Una matriz unidimensional es una lista plana, y una matriz multidimensional es una matriz de matrices que se utiliza para tablas, cuadrículas y matrices.

Utilice el campo length, por ejemplo arr.length. Devuelve la cantidad de ranuras y funciona con cualquier tipo de array. A diferencia de String, los arrays exponen length como un campo, no como una llamada a un método.

La JVM comprueba los límites en cada acceso a la matriz. Leer o escribir un índice inferior a cero o igual o superior a la longitud genera una excepción ArrayIndexOutOfBoundsException, lo que evita los errores de corrupción de memoria que plagan a C y C++.

Java Los argumentos se pasan por valor, pero en el caso de los arrays, ese valor es una copia de la referencia. El método actúa sobre el mismo array subyacente, por lo que los cambios en los elementos dentro del método son visibles para quien lo llama.

Los asistentes de código de aprendizaje automático reconocen el patrón declarar-construir-inicializar y completan literales o bucles. También detectan errores comunes de índices desfasados ​​que provocarían una excepción ArrayIndexOutOfBoundsException en tiempo de ejecución.

Sí. GitHub Copilot genera automáticamente declaraciones de matrices, bucles, llamadas a Arrays.sort y recorridos de matrices bidimensionales a partir de un comentario en lenguaje natural. RevRevise los límites generados antes de ejecutar la prueba con los datos de producción.

Resumir este post con: