Intro
Arreglos
Sección titulada «Arreglos»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
foryforeach.
Declaración e inicialización de arreglos
Sección titulada «Declaración e inicialización de arreglos»Declaración de un arreglo
Sección titulada «Declaración de un arreglo»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.
Inicialización de un arreglo
Sección titulada «Inicialización de un arreglo»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 elementosnombres = new String[3]; // Arreglo de Strings con 3 elementosproductos = new Producto[2]; // Arreglo de objetos de tipo Producto con 2 elementosEn 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 es0. -
Para
char, el valor por defecto es\u0000(carácter nulo). -
Para
boolean, el valor por defecto esfalse. -
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"};Acceso y modificación de elementos
Sección titulada «Acceso y modificación de elementos»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 -1Si se intenta acceder a un índice fuera del rango del arreglo, se generará una excepción ArrayIndexOutOfBoundsException.
Recorrido de un arreglo
Sección titulada «Recorrido de un arreglo»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);}Limitaciones de los arreglos
Sección titulada «Limitaciones de los arreglos»-
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
ArrayListde la bibliotecajava.util.