Arrays y Matrices
Los arrays en Java son la estructura de datos más básica: una secuencia de elementos del mismo tipo en posiciones contiguas de memoria. Su ventaja es el acceso por índice en O(1): arr[5] accede al sexto elemento instantáneamente sin importar el tamaño del array. Su limitación es que el tamaño se fija en la creación y no cambia. Para casos donde necesitas agregar o eliminar elementos, usa ArrayList que crece dinámicamente internamente.
La clase Arrays (con mayúscula) trae métodos estáticos para trabajar con arrays: • Arrays.sort(a) → ordena de menor a mayor (modifica el propio array) • Arrays.binarySearch(a, x) → busca x y devuelve su posición; solo funciona si el array ya está ordenado • Arrays.copyOf(a, n) → crea una copia con n elementos • Arrays.toString(a) → lo convierte en texto legible, como [1, 2, 3]. Sin él, System.out.println(a) muestra una dirección de memoria • Arrays.deepToString(m) → igual, pero para matrices (arrays de arrays)
import java.util.Arrays;
// Declaración e inicialización
int[] numeros = new int[5]; // {0,0,0,0,0}
int[] pares = {2, 4, 6, 8, 10};
String[] frutas = new String[]{"manzana", "pera", "uva"};
// Acceso y modificación
System.out.println(pares[0]); // 2
pares[0] = 20;
System.out.println(pares.length); // 5
// Recorrer
for (int n : pares) System.out.print(n + " ");
for (int i = 0; i < pares.length; i++) System.out.print(pares[i] + " ");
// Métodos de Arrays
Arrays.sort(pares); // Ordenar in-place
int idx = Arrays.binarySearch(pares, 6); // Búsqueda binaria (necesita estar ordenado)
int[] copia = Arrays.copyOf(pares, 5); // Copiar
int[] parte = Arrays.copyOfRange(pares, 1, 4); // Sublista [4,6,8]
Arrays.fill(numeros, 42); // Llenar con valor
System.out.println(Arrays.toString(pares)); // [2, 4, 6, 8, 10]
// Array de arrays (2D)
int[][] matriz = new int[3][3];
int[][] tablero = {{1,2,3},{4,5,6},{7,8,9}};
System.out.println(tablero[1][2]); // 6
System.out.println(Arrays.deepToString(tablero)); // [[1,2,3],[4,5,6],[7,8,9]]
for (int[] fila : tablero) {
for (int val : fila) System.out.print(val + " ");
System.out.println();
}
// Convertir entre array y List
import java.util.List;
List<String> lista = Arrays.asList("a", "b", "c");
String[] arr = lista.toArray(new String[0]);
Practica esta lección
Resuelve los ejercicios del curso de Java en la app, gratis y con corrección automática.
Empezar a practicar