Ir al contenido

Intro

Los arreglos son estructuras de datos de referencia, pero con la diferencia de ser objetos especiales diseñados para contener múltiples elementos de un mismo tipo.

Los arreglos permiten almacenar y acceder a valores a través de un índice, el cual comienza en 0 y se asocia a cada elemento1 dentro del arreglo. Los arreglos pueden contener tanto tipos de datos primitivos como referencias a objetos.

  • Son una colección ordenada de elementos.

  • Pueden almacenar datos de tipo primitivo (int, double, char, boolean, etc.) o de referencia (objetos de una clase).

  • Su tamaño es fijo una vez que han sido creados.

  • Se accede a los elementos mediante índices que comienzan desde 0.

  • Se pueden recorrer utilizando estructuras de control como for y foreach.


Un arreglo se declara especificando el tipo de datos que almacenará, seguido de corchetes [] y un nombre de variable.

int[] numeros;
String[] nombres;
Producto[] productos;

Por convención se recomienda que los nombres de los arreglos estén en plural para reflejar que contienen múltiples elementos.

Para instanciar un arreglo se utiliza el operador new, especificando el tipo de datos y el tamaño del arreglo.

numeros = new int[5]; // Arreglo de enteros con 5 elementos
nombres = new String[3]; // Arreglo de Strings con 3 elementos
productos = new Producto[2]; // Arreglo de objetos de tipo Producto con 2 elementos

En este punto, se reserva espacio en memoria para los elementos del arreglo. Sin embargo, los valores no están asignados:

  • Para tipos primitivos numéricos (int, double, float, long), el valor por defecto es 0.

  • Para char, el valor por defecto es \u0000 (carácter nulo).

  • Para boolean, el valor por defecto es false.

  • Para referencias a objetos, el valor por defecto es null.


Declaración e inicialización en una sola línea

Sección titulada «Declaración e inicialización en una sola línea»

También es posible inicializar un arreglo en el momento de su declaración utilizando llaves {}.

int[] numeros = {1, 2, 3, 4, 5};
String[] nombres = {"Nataly", "Kitty", "Donnie"};

Cada elemento de un arreglo se accede utilizando su índice dentro de corchetes. El primer elemento se accede con numeros[0], mientras que el último se obtiene con numeros[numeros.length - 1].

int primerNumero = numeros[0]; // Accede al primer elemento (índice 0)
nombres[1] = "Isi"; // Modifica el segundo elemento (índice 1)
int ultimoElemento = numeros[numeros.length - 1];
System.out.println(ultimoElemento); // Imprime -1

Si se intenta acceder a un índice fuera del rango del arreglo, se generará una excepción ArrayIndexOutOfBoundsException.


Los arreglos pueden recorrerse con un bucle for o con un foreach para simplificar la sintaxis:

for (int i = 0; i < numeros.length; i++) {
System.out.println(numeros[i]);
}
for (int numero : numeros) {
System.out.println(numero);
}

  • Su tamaño es fijo, lo que los hace poco flexibles para situaciones en las que el número de elementos puede variar.

  • Para modificar su tamaño, es necesario crear un nuevo arreglo y copiar los elementos del anterior.

  • Para colecciones dinámicas, se recomienda el uso de ArrayList de la biblioteca java.util.