Dominando Arrays en Java: Guía Completa para Manejo Eficiente de Datos
Java proporciona una estructura de datos, el array, que almacena una colección secuencial de tamaño fijo de elementos del mismo tipo. Un array se usa para almacenar una colección de datos, pero es más útil pensarlo como una colección de variables del mismo tipo.
En lugar de declarar variables individuales como numero0, numero1, ..., numero99, declaras una variable array como numeros y usas numeros[0], numeros[1], ..., numeros[99] para representar variables individuales.
Este tutorial introduce cómo declarar variables array, crear arrays, y procesar arrays usando variables indexadas.
Declarando Variables Array
Para usar un array en un programa, debes declarar una variable que referencie el array y especificar el tipo de array que la variable puede referenciar. Sintaxis:
Sintaxis
tipoDato[] nombreArrayRef; // forma preferida o tipoDato nombreArrayRef[]; // funciona pero no preferida
Nota – El estilo tipoDato[] nombreArrayRef es preferido. El estilo tipoDato nombreArrayRef[] viene de C/C++ y se adoptó en Java para acomodar programadores de C/C++.
Ejemplo
double[] miLista; // preferido double miLista[]; // funciona pero no preferido
Creando Arrays
Puedes crear un array usando el operador new:
Sintaxis
nombreArrayRef = new tipoDato[tamañoArray];
Esta sentencia hace dos cosas:
- Crea un array usando
new tipoDato[tamañoArray]. - Asigna la referencia del array recién creado a la variable
nombreArrayRef.
Declarar, crear y asignar se puede combinar en una sentencia:
tipoDato[] nombreArrayRef = new tipoDato[tamañoArray];
Alternativamente, puedes crear arrays así:
tipoDato[] nombreArrayRef = {valor0, valor1, ..., valork};
Los elementos se acceden mediante índice. Los índices son 0-based: de 0 a nombreArrayRef.length-1.
Ejemplo
La siguiente sentencia declara variable array miLista, crea array de 10 elementos double y asigna su referencia:
double[] miLista = new double[10];
La siguiente imagen representa array miLista. Aquí, miLista contiene diez valores double e índices de 0 a 9.
Procesando Arrays
Al procesar elementos de array, a menudo usamos bucles for o foreach porque todos los elementos son del mismo tipo y el tamaño es conocido.
Ejemplo
Ejemplo completo de crear, inicializar y procesar arrays:
Demo en Vivopublic class TestArray {
public static void main(String[] args) {
double[] miLista = {1.9, 2.9, 3.4, 3.5};
// Imprimir todos los elementos
for (int i = 0; i < miLista.length; i++) {
System.out.println(miLista[i] + " ");
}
// Sumar todos
double total = 0;
for (int i = 0; i < miLista.length; i++) {
total += miLista[i];
}
System.out.println("Total es " + total);
// Encontrar el mayor
double max = miLista[0];
for (int i = 1; i < miLista.length; i++) {
if (miLista[i] > max) max = miLista[i];
}
System.out.println("Máximo es " + max);
}
}
Resultado:
Salida
1.9 2.9 3.4 3.5 Total es 11.7 Máximo es 3.5
Bucles foreach
JDK 1.5 introdujo nuevo bucle for conocido como foreach o enhanced for loop, que permite recorrer el array completo secuencialmente sin variable de índice.
Ejemplo
Código que muestra todos los elementos en miLista:
Demo en Vivopublic class TestArray {
public static void main(String[] args) {
double[] miLista = {1.9, 2.9, 3.4, 3.5};
for (double elemento : miLista) {
System.out.println(elemento);
}
}
}
Resultado:
Salida
1.9 2.9 3.4 3.5
Pasando Arrays a Métodos
Al igual que puedes pasar valores de tipos primitivos a métodos, también puedes pasar arrays. Ejemplo: método que muestra elementos de array int:
Ejemplo
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
Puedes invocarlo pasando un array. Ejemplo: muestra 3, 1, 2, 6, 4, 2:
Ejemplo
printArray(new int[]{3, 1, 2, 6, 4, 2});
Retornando un Array desde un Método
Un método puede también retornar un array. Ejemplo: método que retorna array inverso de otro:
Ejemplo
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
result[j] = list[i];
}
return result;
}
La Clase Arrays
java.util.Arrays contiene varios métodos estáticos para ordenar, buscar, comparar arrays y rellenar elementos. Estos métodos están sobrecargados para todos los tipos primitivos.
| Nº | Método y Descripción |
|---|---|
| 1 | public static int binarySearch(Object[] a, Object key) – Busca en array de Object (Byte, Int, double, etc.) el valor especificado usando búsqueda binaria. El array debe estar ordenado. Retorna índice de la clave, si está contenida; si no, retorna (– (punto de inserción + 1)). |
| 2 | public static boolean equals(long[] a, long[] a2) – True si dos arrays de long son iguales. Mismo método para otros tipos primitivos (Byte, short, Int, etc.) |
| 3 | public static void fill(int[] a, int val) – Asigna valor int especificado a cada elemento del array de ints. Mismo método para otros tipos. |
| 4 | public static void sort(Object[] a) – Ordena array de objetos en orden ascendente según orden natural. Mismo método para otros tipos primitivos. |
Java
- Dominando arrays en C#: Declaración, inicialización y operaciones
- Arrays en C++: Declaración, inicialización y técnicas con punteros
- Asignación dinámica de arrays en C++: Guía práctica con ejemplos de código
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Técnicas de Copia de Arrays en Java: Guía Completa
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Tutorial de arrays en Java: Declaración, creación e inicialización – Código de ejemplo
- Crear un array de objetos en Java: Guía paso a paso
- Domine Bubble Sort en Java: Ejemplo Claro y Recorrido Paso a Paso