Una lista de la compra no es fija
Apuntas leche, pan y huevos. Luego te acuerdas de la fruta y la añades. Después tachas el pan porque ya lo tienes.
Una lista de verdad crece y mengua mientras la usas.
Un array no puede: su tamaño se fija al crearlo. Para esto Java tiene ArrayList.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| ArrayList | Una lista que crece y mengua sola. Se parece a un array, pero cambia de tamaño. | new ArrayList<String>() |
| <String> | Lo que va entre los signos < y > dice qué clase de valores guarda la lista. | ArrayList<String> |
| add | Método que añade un valor al final de la lista. | list.add("pan") |
| size | Método que dice cuántos valores hay ahora. | list.size() |
| remove | Método que borra un valor, por su posición o por su valor. | list.remove(0) |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un array que se estira
Un ArrayList guarda valores en orden, igual que un array. La primera posición también es la 0.
Pero no hay que decir su tamaño al crearlo. Empieza vacío y tú vas añadiendo con add.
Para importarlo, escribe import java.util.ArrayList; en la primera línea.
Pruébalo: la lista de la compra
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> shopping = new ArrayList<String>();
shopping.add("leche");
shopping.add("pan");
shopping.add("huevos");
System.out.println("Hay " + shopping.size() + " cosas.");
System.out.println("La primera es " + shopping.get(0));
// La lista crece sola.
shopping.add("fruta");
System.out.println(shopping);
}
}
Array frente a ArrayList
| Qué quieres | Array | ArrayList |
|---|---|---|
| Cuántos valores hay | values.length | list.size() |
| Leer la posición 2 | values[2] | list.get(2) |
| Cambiar la posición 2 | values[2] = x; | list.set(2, x); |
| Añadir uno más | No se puede | list.add(x); |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Borrar y buscar
Con remove borras. Puedes darle una posición, remove(0), o un valor, remove("pan").
Cuando borras, los de detrás se corren un puesto a la izquierda. La lista se cierra sin huecos.
Con contains preguntas si un valor está. Con indexOf pides su posición, o -1 si no está.
Pruébalo: tachar de la lista
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> shopping = new ArrayList<String>();
shopping.add("leche");
shopping.add("pan");
shopping.add("huevos");
shopping.remove("pan");
System.out.println(shopping);
shopping.remove(0);
System.out.println(shopping);
System.out.println(shopping.contains("huevos"));
System.out.println(shopping.indexOf("leche"));
System.out.println(shopping.isEmpty());
}
}
Ejemplo resuelto: cómo cambia la lista
| Orden | La lista queda | size() |
|---|---|---|
| Se crea vacía | [] | 0 |
| add("leche"), add("pan"), add("huevos") | [leche, pan, huevos] | 3 |
| remove("pan") | [leche, huevos] | 2 |
| remove(0) | [huevos] | 1 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Repaso rápido
Inténtalo
Repaso rápido
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.