Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

Arrays: listas de valores

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

40 minutos

Cinco partidos, cinco variables

Tu equipo ha jugado cinco partidos. Quieres guardar los goles de cada uno.

Con lo que sabes, crearías cinco variables. ¿Y si fueran treinta partidos? Sería una pesadilla.

Java tiene algo mejor: una fila de cajas, todas juntas, con un solo nombre. Se llama array.

Palabras clave

PalabraQué significaEjemplo
ArrayUna fila de cajas del mismo tipo con un solo nombre.int[] goals
ElementoCada caja del array y el valor que guarda.el 3 de la tercera caja
ÍndiceEl número de posición de una caja. Empieza en 0.goals[0]
lengthCuántas cajas tiene el array.goals.length
RecorrerPasar por todas las cajas con un bucle.for (int i = 0; ...)
CorchetesLas marcas [ y ]. Sirven para elegir una caja.goals[2]

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Crear un array

Escribes el tipo, seguido de corchetes, y después el nombre. Los valores van entre llaves.

int[] goals = {2, 0, 3, 1, 4}; crea cinco cajas con números enteros.

Para leer una caja escribes el nombre y su posición entre corchetes: goals[2].

Pruébalo: los goles de la liga

Código: java
public class Main {
    public static void main(String[] args) {
        int[] goals = {2, 0, 3, 1, 4};

        System.out.println("La primera caja vale " + goals[0]);
        System.out.println("La tercera caja vale " + goals[2]);
        System.out.println("Hay " + goals.length + " partidos.");

        // Escribe la última caja: goals[4].
    }
}

El índice empieza en 0

Esto sorprende a todo el mundo. La primera caja es la 0, no la 1.

Piensa en un ascensor: la planta de la calle es la 0. La segunda planta es la 1.

En un array de 5 cajas, los índices son 0, 1, 2, 3 y 4. El último es siempre length - 1.

Ejemplo resuelto: el array de goles

ÍndiceCómo se escribeValorPartido
0goals[0]2El primero
1goals[1]0El segundo
2goals[2]3El tercero
3goals[3]1El cuarto
4goals[4]4El quinto

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Cambiar una caja

Una caja se cambia como una variable. Escribes su posición, un igual y el valor nuevo.

goals[1] = 5; mete un 5 en la segunda caja. Las demás no cambian.

Pruébalo: corregir un resultado

Código: java
public class Main {
    public static void main(String[] args) {
        int[] goals = {2, 0, 3, 1, 4};

        // Corregimos el resultado: en el segundo partido hubo 3 goles, no 0.
        goals[1] = 3;
        System.out.println("Ahora la segunda caja vale " + goals[1]);

        // La tercera caja sube un gol.
        goals[2] = goals[2] + 1;
        System.out.println("Ahora la tercera caja vale " + goals[2]);
    }
}

No te pases del final

Advertencia

Con 5 cajas, goals[5] no existe. Java para el programa con el error ArrayIndexOutOfBoundsException. Significa: índice fuera de los límites. Revisa que el último índice sea length - 1.

Recorrer el array con un for

Escribir goals[0], goals[1], goals[2]... a mano es lento. Un for lo hace por ti.

La variable i toma los valores 0, 1, 2, 3 y 4. Usas i < goals.length, con menor que y no con menor o igual. Si usas <=, la última vuelta se pasa del final.

Pruébalo: todos los partidos

Código: java
public class Main {
    public static void main(String[] args) {
        int[] goals = {2, 0, 3, 1, 4};

        for (int i = 0; i < goals.length; i++) {
            // Sumamos 1 a i para decir "partido 1" y no "partido 0".
            System.out.println("Partido " + (i + 1) + ", goles: " + goals[i]);
        }

        // Añade un sexto partido a la lista y ejecuta otra vez.
    }
}

Arrays de texto y arrays vacíos

Un array puede guardar cualquier tipo. Para días de la semana usas String[].

Si aún no sabes los valores, creas el array vacío: new int[3] da tres cajas con un 0 dentro. Después las rellenas.

Pruébalo: la semana y una lista vacía

Código: java
public class Main {
    public static void main(String[] args) {
        String[] days = {"lunes", "martes", "miércoles", "jueves", "viernes"};
        System.out.println("El tercer día es " + days[2]);

        // Tres cajas vacías, que valen 0.
        int[] euros = new int[3];
        euros[0] = 5;
        euros[1] = 8;
        for (int i = 0; i < euros.length; i++) {
            System.out.println("Caja " + i + ": " + euros[i]);
        }
    }
}

La lección continúa

5 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.