Café y Código

7. Manejo de Datos: Arrays y ArrayList

El Array Clásico (Estático)

Los arreglos estándar en Java son estáticos y estrictos (nacen con un tamaño, y mueren con ese tamaño). Sirven para juntar muchos elementos del MISMO tipo bajo un solo nombre en diferentes índices (empezando por el índice 0).

Array Tradicional
JAVA
1 // Arreglo de tamaño 3 con valores de fábrica predefinidos
2 String[] herramientas = { "Martillo", "Llave", "Serrucho" };
3
4 // Imprimir el primer elemento
5 System.out.println(herramientas[0]); // Martillo
6
7 // Descubrir cuán grande es (devuelve 3)
8 int cant = herramientas.length;

El todopoderoso ArrayList (Dinámico)

En la vida real de los proyectos empresariales, las listas cambian constantemente. Usamos la clase nativa ArrayList del paquete java.util para esto. A diferencia del Array, es súper dinámico y posee métodos útiles como `.add()`, `.remove()` y `.size()`.

Listas Dinámicas en Java
JAVA
1 import java.util.ArrayList;
2
3 public class Main {
4 public static void main(String[] args) {
5 // Al crear listas dinámicas con diamantes <>,
6 // no admiten primitivos int, exigen su clase Wrapper Integer
7 ArrayList<String> alumnos = new ArrayList<String>();
8
9 // Agregar es sumamente fácil y elástico
10 alumnos.add("Carlos");
11 alumnos.add("Sofía");
12
13 // Iterar de la forma moderna usando "for-each"
14 for (String nombre : alumnos) {
15 System.out.println("Alumno: " + nombre);
16 }
17 }
18 }

👨‍💻 Ejercicio Práctico 1

Misión: El saludo masivo

Crea un arreglo estático de Strings llamado amigos con 3 nombres. Trata de recorrerlos e imprimirlos usando un for-each.

👁️ Ver solución propuesta
JAVA
1 String[] amigos = { "Ana", "Fernando", "Lucía" };
2
3 // "Por cada amigo dentro de mi colección de amigos..."
4 for (String amigo : amigos) {
5 System.out.println("¡Hola " + amigo + "!");
6 }

👨‍💻 Ejercicio Práctico 2

Misión: Longitud de Arreglos

Declara un String[] colores = Verde; y usa sin iterar la propiedad nativa .length para imprimir en texto cuántos colores cargó metiste en duro.

👁️ Ver solución propuesta
JAVA
1 String[] colores = { "Rojo", "Azul", "Verde" };
2 System.out.println("Hay en total " + colores.length + " colores guardados.");

👨‍💻 Ejercicio Práctico 3

Misión: Manipulando el ArrayList

Activa e instancia una ArrayList<Integer> puntos = new ArrayList<>();. Usando .add() inyecta los números 10, 20 y 30. Finalmente, borra el 20 usando .remove(Integer.valueOf(20)) o referenciando el índice.

👁️ Ver solución propuesta
JAVA
1 import java.util.ArrayList;
2
3 public class App {
4 public static void main(String[] args) {
5 ArrayList<Integer> puntos = new ArrayList<>();
6 puntos.add(10);
7 puntos.add(20);
8 puntos.add(30);
9
10 // Cuidado: .remove(20) querrá borrar la POSICIÓN 20 si lo pasas crudo.
11 // Mejor removemos el índice 1 (que guarda el valor 20),
12 puntos.remove(1);
13 }
14 }

👨‍💻 Ejercicio Práctico 4

Misión: Leyendo tu propia Lista

Usando la lista puntos anterior donde quedaron vivos el 10 y el 30, utiliza .size() para imprimir cuántos registros oficiales te quedaron.

👁️ Ver solución propuesta
JAVA
1 // Siguiendo el ArrayList anterior...
2 int vivos = puntos.size();
3 System.out.println("Nos han quedado " + vivos + " elementos intactos.");

Ponte a prueba

Termina de dominar a las Colecciones y demuestra cuánto sabes de estáticos versus dinámicos.

Dato curioso: JDK 1.0 en 1996; James Gosling y Sun Microsystems. Wikipedia

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.