Ejercicio 1 de 4
Tu primer array
Un array guarda varios valores del mismo tipo:
int[] numeros = {10, 20, 30};
Accedes a cada valor por su índice — y este empieza en 0:
numeros[0] // 10
numeros[1] // 20
numeros[2] // 30
Cambia el índice para que se imprima Mié.
Código inicial
void main() {
String[] dias = {"Lun", "Mar", "Mié", "Jue", "Vie"};
IO.println(dias[0]);
}
Contexto
Los arrays en memoria
Un array es un único bloque continuo de memoria. int[5] reserva 5 × 4 bytes = 20 bytes de una sola vez. Por eso el acceso por índice es rapidísimo — la JVM solo hace la cuenta: dirección de inicio + índice × tamaño del elemento.
Los arrays tienen un tamaño fijo que se define al crearlos y que nunca puede cambiar. Si necesitas un tamaño que crezca, usa ArrayList.
Ejercicio 2 de 4
Longitud de un array
Con .length obtienes el número de elementos:
int[] numeros = {10, 20, 30};
IO.println(numeros.length); // 3
Reemplaza ??? para imprimir la longitud del array.
Código inicial
void main() {
String[] colores = {"Rojo", "Verde", "Azul", "Amarillo"};
IO.println(???);
}
Contexto
.length en arrays vs. cadenas
En los arrays, length es un campo (sin paréntesis): arr.length. En las cadenas, length() es un método (con paréntesis): str.length(). Al principio todo el mundo los confunde — no te preocupes.
El motivo: los arrays son una construcción especial integrada directamente en el lenguaje. Son objetos, pero no tienen un método propio para esto — solo un campo length integrado y de solo lectura. Las cadenas son objetos normales de la clase String y te dan su longitud mediante un método.
Ejercicio 3 de 4
Recorrer un array
Con for-each recorres todos los elementos — más fácil que con un índice:
for (String s : miArray) {
IO.println(s);
}
Léelo así: "Para cada String s en miArray".
Completa el bucle para que se impriman todas las frutas.
Código inicial
void main() {
String[] frutas = {"Manzana", "Pera", "Cereza"};
for (String ???) {
IO.println(fruta);
}
}
Contexto
For-each por dentro
El bucle for-each es azúcar sintáctico — el compilador lo convierte en un bucle for normal por detrás. Para arrays usa un índice; para colecciones, un Iterator.
La pega: no tienes acceso al índice. Si lo necesitas, usa la versión clásica for(int i=0; ...).
Ejercicio 4 de 4
Último elemento
El último elemento siempre tiene el índice length - 1:
numeros[numeros.length - 1]
Reemplaza ??? para imprimir el último elemento — sin importar lo largo que sea el array.
Código inicial
void main() {
String[] animales = {"Perro", "Gato", "Pájaro", "Pez"};
IO.println(???);
}
Contexto
ArrayIndexOutOfBoundsException
Si accedes al índice 4 de un array con 4 elementos, obtienes un error en tiempo de ejecución — el programa se cae. Java comprueba los límites en cada acceso (bounds checking).
Lenguajes como C no hacen esta comprobación — ahí simplemente lees lo que haya en la memoria en ese momento (¡una fuente clásica de agujeros de seguridad!). Java es más seguro en esto.