Cargando...

ArrayList en Java

Crea un ArrayList<String> llamado tags, llama tags.add("oak"); y después tags.add("pine");, e imprime la lista con System.out.println(tags);. Compila Shelf.java y ejecuta java Shelf. La pantalla debe mostrar una línea: [oak, pine]. Los corchetes y la coma pertenecen a cómo Java imprime la lista. Haces crecer la lista con add. Esa lista creciente tras el import es lo que enseña esta página.

Una lista que puede crecer

En la página de arrays un String[] guardaba un número fijo de huecos entre llaves. No podías llamar add sobre ese array. Un ArrayList es otro tipo de contenedor. Lo creas vacío y empujas valores con add. Cada add agranda la lista en uno. La línea de impresión muestra todos los valores guardados ahora, entre corchetes, separados por comas y espacios.
Abre Shelf.java. Mantén el nombre de la clase pública Shelf para que coincida con el archivo. Borra restos de import kit.Bell;, Bell.ring();, package kit; y cualquier llamada a Porch o Lobby de las páginas anteriores. Eso pertenece a la historia del módulo Classes. Esta página abre Collections. Borra también cualquier Scanner, nextLine o lectura de teclado. El programa no debe esperar a que escribas.
Cerca del inicio de Shelf.java, encima de public class Shelf, escribe:
import java.util.ArrayList;
Ese import acerca el tipo ArrayList al nombre corto, igual que import kit.Bell; acercó Bell en la página de import. Sin esa línea, javac no ve el nombre corto ArrayList en esta página. Escribe con cuidado el paquete java.util y la clase ArrayList. No inventes import java.util.*; como requisito aquí — un import exacto basta.
Dentro de main, crea la lista:
ArrayList<String> tags = new ArrayList<String>();
Los ángulos llevan String porque esta lección guarda palabras. El nombre tags lo escribes exactamente como en el archivo que se guarda. La llamada new ArrayList<String>() construye un objeto lista vacío. En ese momento la lista guarda cero valores. Imprimirla ahora mostraría [], pero el archivo guardado añade palabras antes de imprimir.

Añade oak, luego pine, luego imprime

Llama tags.add("oak"); en su propia línea. Luego llama tags.add("pine"); en la siguiente. Cada llamada guarda una palabra entre comillas. El orden importa para la pantalla: primero oak, después pine. No los intercambies en el archivo guardado. No añadas una tercera palabra en el archivo de enseñanza de esta página — dos adds bastan para ver el crecimiento y la forma impresa.
Luego escribe:
System.out.println(tags);
Pasa el nombre de la lista. No pongas comillas alrededor de tags. No escribas a mano System.out.println("oak"); como camino de la lección — la idea es que el objeto lista lleva ambas palabras y las imprime juntas. Guarda el archivo antes de compilar.

Shelf ArrayList add oak pine

java
import java.util.ArrayList;

public class Shelf {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        System.out.println(tags);
    }
}

Desde la carpeta que guarda Shelf.java, ejecuta javac Shelf.java. Cuando coincidan paréntesis, llaves, ángulos y punto y coma, javac no escribe línea propia. Luego ejecuta java Shelf — no java Shelf.java ni java ArrayList. Quita el final .java del comando de ejecución. Arranca la clase que tiene main.
El programa debe imprimir una línea y parar: [oak, pine]. No debe pedirte que escribas. Si la terminal espera teclado, aún queda una llamada nextLine de un ejercicio antiguo en un archivo. Bórrala y mantén la creación del ArrayList, las dos líneas add y System.out.println(tags);.
Recorre la ejecución una vez. Java empieza en Shelf.main. El import ya nombró qué ArrayList quieres. La línea new construye una lista vacía. El primer add guarda oak. El segundo add guarda pine. La línea de impresión pide a la lista que muestre su contenido. La pantalla muestra [oak, pine]. Nada más debe imprimirse. Si ves ding, 9 u ok, aún estás ejecutando un programa antiguo Porch, Lobby, Pier o Yard. Cambia a java Shelf.
Si javac dice que no encuentra ArrayList, falta la línea import, está mal escrita o está después de public class Shelf. Mueve import java.util.ArrayList; encima de la línea de clase. Si escribes tags.add(oak); sin comillas, javac trata oak como un nombre que no existe. Mantén las comillas alrededor de cada palabra. Si escribes String[] tags = new ArrayList<String>();, los tipos no coinciden y javac rechaza — en esta página mantén ArrayList<String> a ambos lados de la línea de creación.

Array fijo junto a la lista creciente

Un contraste corto mantiene a la vista la página de arrays sin mezclarla en la ejecución de la lección. Un String[] fijo sigue funcionando. No crece con add.

fixed String array contrast

java
public class Shelf {
    public static void main(String[] args) {
        String[] trees = {"oak", "pine"};
        System.out.println(trees[0]);
    }
}

Compila y ejecuta ese contraste solo para recordar la forma fija. La pantalla muestra oak — un hueco — no [oak, pine]. No hay llamada add. Para guardar una tercera palabra en un array fijo necesitarías un array nuevo con tres huecos. El archivo de enseñanza de ArrayList es el que tiene import java.util.ArrayList;, dos llamadas add y System.out.println(tags);. Usa el archivo de array fijo solo como recordatorio, no como camino del quiz. No mezcles trees.add("elm") en ese contraste — String[] no tiene add, y javac rechazaría.

Uno al lado del otro

Una tabla corta mantiene clara la diferencia.

📊 ArrayList vs String array

Piece On this page
create ArrayList<String> tags = new ArrayList<String>();
grow tags.add("oak"); then tags.add("pine");
print list System.out.println(tags); → [oak, pine]
fixed array String[] trees = {"oak", "pine"}; — no add
La tabla es solo un recordatorio. Las piezas tipadas que guardas para el archivo de la lección son el import, la creación del ArrayList, las dos llamadas add y la impresión de tags.

Comparado con import y con arrays

En la página de import, Porch llamó Bell.ring(); tras import kit.Bell;. Eso sigue valiendo como historia. Esta página cambia el papel a Shelf y el import a java.util.ArrayList. Un resto de Bell.ring(); es otra lección. Para esta página mantén ArrayList<String> tags, dos líneas add e imprime la lista.
En la página de arrays, las llaves llenaban un String[] fijo. Eso sigue valiendo para un tamaño conocido. Esta lección elige ArrayList para que veas el crecimiento con add y una sola impresión de toda la lista. No mezcles plants[0] y tags.add("oak") en la misma demo Shelf de esta página. Un camino claro basta: import, crear, add, add, imprimir.
Cuando más adelante necesites get, size o remove, la página siguiente — métodos de list — cubre esas llamadas. Quédate aquí con add y la impresión completa de la lista. No inventes un bucle sobre la lista como requisito en esta página; imprimir el objeto lista basta para ver ambas palabras.

Lo que queda para métodos de list

Esta página abre Collections con una lista que puede crecer. La página siguiente trabaja las llamadas habituales de lista, como leer un hueco o preguntar cuántos valores hay. Quédate aquí con add y la impresión completa. No inventes tags.get(0) como requisito aquí salvo que ya lo sepas; el objetivo es la lista creciente y la pantalla [oak, pine].
Cuando aún queden cerca archivos viejos Porch.java o Lobby.java, déjalos o bórralos solo si confunden el comando de ejecución. Ejecuta java Shelf después de compilar el archivo ArrayList de esta lección.

Antes de los métodos de list

Puedes importar java.util.ArrayList, crear ArrayList<String> tags, llamar tags.add("oak"); y tags.add("pine");, e imprimir tags. Compila Shelf.java y ejecuta java Shelf. La pantalla muestra [oak, pine]. La lista creció con add. La página siguiente es métodos de list, donde alcanzas un valor o preguntas a la lista cuánto mide.
Mantén el import encima de la clase. Mantén ambas llamadas add antes de imprimir. Mantén java Shelf para esta lección. Esos tres hábitos son el punto de control de esta página antes de seguir. Cuando la pantalla muestre [oak, pine] tras los dos adds, el ArrayList cumplió su trabajo en esta lección y estás listo para el siguiente tema.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior