Arrays en Java

Aprende a trabajar con colecciones de datos organizados

¿Qué es un Array?

Un array es como un estante

Un array es una estructura de datos que almacena múltiples valores del MISMO tipo en posiciones contiguas de memoria.

Array de Enteros

Características de los Arrays:

Tamaño Fijo

Una vez creado, no se puede cambiar su tamaño

Índices Numéricos

Acceso a elementos mediante índices (0 a n-1)

Memoria Contigua

Todos los elementos se almacenan juntos en memoria

Acceso Rápido

Acceso directo a cualquier posición en tiempo constante

Tipos de Arrays

Array Unidimensional

1 Dimensión
Descripción

Lista de elementos del mismo tipo, accesibles mediante un único índice.

int[] numeros = {10, 20, 30, 40, 50};
10
[0]
20
[1]
30
[2]
40
[3]
50
[4]
Declaración y Uso
Declaración:
// Tres formas de declarar arrays
int[] numeros1;           // Declaración
int numeros2[];           // Forma alternativa
int[] numeros3 = new int[5]; // Declaración + creación
Inicialización:
// Inicialización directa
int[] numeros = {10, 20, 30, 40, 50};

// Inicialización por elemento
int[] edades = new int[3];
edades[0] = 25;
edades[1] = 30;
edades[2] = 35;
Acceso a elementos:
int[] numeros = {10, 20, 30, 40, 50};
int primerElemento = numeros[0];  // 10
int ultimoElemento = numeros[4];  // 50

// Modificar elemento
numeros[2] = 100;  // Cambia 30 por 100

Array Multidimensional

2 o más Dimensiones
Descripción

Array de arrays. Comúnmente usado para matrices y tablas.

int[][] matriz = {{1, 2, 3}, {4, 5, 6}};
1
[0][0]
2
[0][1]
3
[0][2]
4
[1][0]
5
[1][1]
6
[1][2]
Ejemplos de Uso
Matriz 2x3:
// Declaración e inicialización
int[][] matriz = {
    {1, 2, 3},  // Fila 0
    {4, 5, 6}   // Fila 1
};

// Acceso a elementos
int elemento = matriz[1][2];  // 6 (fila 1, columna 2)
Tabla de Temperaturas:
// Temperaturas por día y hora
double[][] temperaturas = new double[7][24];

// Llenar datos
temperaturas[0][8] = 22.5;   // Lunes, 8am
temperaturas[2][14] = 28.3;  // Miércoles, 2pm

Constructor de Arrays

Configura tu Array

5
3
3

Vista Previa del Array

int[5] miArray

Configura y genera tu array

Código Java Generado:
// Tu código aparecerá aquí

Operaciones Comunes con Arrays

Array de Ejemplo:
2
Accediendo a:
numeros[2]
Valor: 30
Acceso a Elementos

Los elementos de un array se acceden mediante su índice. Los índices comienzan en 0.

int[] numeros = {10, 20, 30, 40, 50};

// Acceso por índice
int primer = numeros[0];    // 10
int tercero = numeros[2];   // 30
int ultimo = numeros[4];    // 50

// Índice fuera de rango causa error
// int error = numeros[5];  // ArrayIndexOutOfBoundsException

¡Cuidado! Intentar acceder a un índice fuera del rango (negativo o mayor/igual al tamaño) causa ArrayIndexOutOfBoundsException.

Array a iterar:
Paso 1 i = 0
for (int i = 0; i < numeros.length; i++) {
    System.out.println(numeros[i]);
}
Salida:
Iteración sobre Arrays

Hay varias formas de recorrer un array:

1. Bucle for clásico
int[] numeros = {10, 20, 30, 40, 50};

for (int i = 0; i < numeros.length; i++) {
    System.out.println(numeros[i]);
}
2. Bucle for-each
int[] numeros = {10, 20, 30, 40, 50};

for (int numero : numeros) {
    System.out.println(numero);
}
3. Bucle while
int[] numeros = {10, 20, 30, 40, 50};
int i = 0;

while (i < numeros.length) {
    System.out.println(numeros[i]);
    i++;
}

Algoritmos con Arrays

Suma de Elementos

Calcula la suma de todos los elementos

Elemento Máximo

Encuentra el valor más grande

Promedio

Calcula el valor promedio

Invertir Array

Revierte el orden de elementos

Ordenamiento Burbuja

Ordena elementos de menor a mayor

Búsqueda Binaria

Busca en arrays ordenados

Suma de Elementos

Operaciones: 0
Tiempo: 0ms
10
Resultado:
Implementación en Java:
// Código del algoritmo aparecerá aquí

Array vs ArrayList

Array

Tamaño Fijo
VS

ArrayList

Tamaño Dinámico
Declaración
int[] numeros = new int[10];
ArrayList<Integer> numeros = new ArrayList<>();
Tamaño
Fijo

No cambia después de la creación

Dinámico

Crece automáticamente cuando es necesario

Agregar elementos
Limitado numeros[0] = 10; // Índice específico
Fácil numeros.add(10); // Al final
Eliminar elementos
Difícil

Requiere crear nuevo array

Fácil numeros.remove(0); // Por índice
Rendimiento
Más rápido

Acceso directo por índice O(1)

Un poco más lento

Ligera sobrecarga por ser objeto

Uso de memoria
Más eficiente

Solo almacena los datos

Más memoria

Almacena datos + metadatos

Conversión entre Array y ArrayList

Array → ArrayList
String[] array = {"A", "B", "C"};
ArrayList<String> lista = new ArrayList<>(Arrays.asList(array));
ArrayList → Array
ArrayList<String> lista = new ArrayList<>();
lista.add("X"); lista.add("Y"); lista.add("Z");
String[] array = lista.toArray(new String[0]);

Ejercicios Prácticos

Calculadora de Notas

Fácil

Crea un programa que calcule el promedio de notas de un estudiante.

Requisitos:
  • Crear un array de 5 notas (double)
  • Calcular la suma de todas las notas
  • Calcular el promedio
  • Mostrar todas las notas y el resultado
Salida esperada:
Notas: [7.5, 8.0, 6.5, 9.0, 7.0]
Suma: 38.0
Promedio: 7.6
Editor de Código

Ejecuta tu código para ver la salida

Juego: Ordena el Array

Ordena los números de menor a mayor

Arrastra los números para ordenarlos correctamente.

Movimientos: 0
Tiempo: 00:00
Dificultad:
Array a ordenar:

Algoritmo de Ordenamiento Burbuja

Este es el algoritmo que debes imitar:

1 Compara el primer elemento con el segundo
2 Si están en orden incorrecto, intercámbialos
3 Repite para cada par adyacente
4 Vuelve al inicio y repite hasta que esté ordenado

Test de Conocimientos

Pregunta 1/10

¿Cuál es el índice del primer elemento en un array?

Resumen y Recursos

Lo que aprendiste

  • Qué son los arrays y cómo funcionan
  • Declaración e inicialización de arrays
  • Arrays unidimensionales y multidimensionales
  • Operaciones comunes con arrays
  • Algoritmos básicos con arrays
  • Diferencias entre Array y ArrayList

Errores Comunes

  • ArrayIndexOutOfBoundsException
  • Olvidar inicializar el array
  • Confundir array.length con array.length()
  • Intentar cambiar el tamaño de un array
  • No usar Arrays.toString() para imprimir

Consejos Prácticos

  • Usa for-each cuando no necesites índices
  • Arrays.sort() para ordenar fácilmente
  • Arrays.copyOf() para copiar arrays
  • Usa ArrayList cuando el tamaño sea variable
  • Documenta arrays complejos con comentarios

Referencia Rápida

Declaración
tipo[] nombre = new tipo[tamaño];
tipo[] nombre = {val1, val2, val3};
Acceso
elemento = array[indice];
array[indice] = nuevoValor;
Iteración
for (int i = 0; i < array.length; i++)
for (tipo elemento : array)
Utilidades
Arrays.sort(array);
Arrays.toString(array);
Arrays.copyOf(array, tamaño);

Recursos Adicionales