Colecciones en Java: guía completa para principiantes
En Java, las colecciones son estructuras que permiten almacenar, organizar y manipular grupos de elementos de manera flexible y eficiente. Son más poderosas que los arrays porque pueden crecer dinámicamente y ofrecen métodos integrados para buscar, ordenar y eliminar elementos.
Este artículo explica los conceptos clave sobre colecciones en Java, incluyendo:
- introducción a las colecciones
ArrayListListSetMap
Introducción a las colecciones
Una colección es un objeto que agrupa múltiples elementos y proporciona operaciones comunes, como agregar, eliminar o recorrer elementos.
Java proporciona un marco llamado Java Collections Framework (JCF) que incluye varias interfaces y clases para trabajar con colecciones.
Principales interfaces del framework:
- List: colección ordenada que permite elementos duplicados
- Set: colección que no permite duplicados
- Map: colección de pares clave-valor
ArrayList
ArrayList es una de las clases más utilizadas. Representa una lista dinámica, es decir, su tamaño puede crecer o reducirse según se agregan o eliminan elementos.
Ejemplo:
import java.util.ArrayList;
public class EjemploArrayList {
public static void main(String[] args) {
ArrayList<String> frutas = new ArrayList<>();
// Agregar elementos
frutas.add("Manzana");
frutas.add("Banana");
frutas.add("Cereza");
// Acceder a elementos
System.out.println(frutas.get(1)); // Banana
// Recorrer la lista
for (String fruta : frutas) {
System.out.println(fruta);
}
// Eliminar un elemento
frutas.remove("Banana");
System.out.println(frutas);
}
}
Salida:
Manzana
Banana
Cereza
[Manzana, Cereza]
List
La interfaz List representa una colección ordenada que permite duplicados. ArrayList y LinkedList son implementaciones comunes de List.
Ejemplo usando List:
import java.util.List;
import java.util.ArrayList;
public class EjemploList {
public static void main(String[] args) {
List<Integer> numeros = new ArrayList<>();
numeros.add(10);
numeros.add(20);
numeros.add(30);
System.out.println("Primer elemento: " + numeros.get(0)); // 10
System.out.println("Tamaño: " + numeros.size()); // 3
}
}
- Permite acceder a elementos por índice
- Mantiene el orden de inserción
Set
Un Set es una colección que no permite elementos duplicados.
No garantiza el orden de los elementos, aunque algunas implementaciones como LinkedHashSet sí lo hacen.
Ejemplo usando HashSet:
import java.util.HashSet;
import java.util.Set;
public class EjemploSet {
public static void main(String[] args) {
Set<String> colores = new HashSet<>();
colores.add("Rojo");
colores.add("Verde");
colores.add("Azul");
colores.add("Rojo"); // no se agregará porque ya existe
for (String color : colores) {
System.out.println(color);
}
}
}
Salida (el orden puede variar):
Rojo
Verde
Azul
- Ideal para almacenar elementos únicos
- Útil para eliminar duplicados
Map
Un Map almacena pares clave-valor, donde cada clave es única y se asocia a un valor.
Las implementaciones más comunes son HashMap, TreeMap y LinkedHashMap.
Ejemplo usando HashMap:
import java.util.HashMap;
import java.util.Map;
public class EjemploMap {
public static void main(String[] args) {
Map<String, Integer> edades = new HashMap<>();
// Agregar pares clave-valor
edades.put("Ana", 25);
edades.put("Luis", 30);
edades.put("Carlos", 28);
// Acceder a un valor
System.out.println("Edad de Luis: " + edades.get("Luis")); // 30
// Recorrer el mapa
for (Map.Entry<String, Integer> entry : edades.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// Eliminar un elemento
edades.remove("Carlos");
System.out.println(edades);
}
}
Salida:
Edad de Luis: 30
Ana: 25
Luis: 30
Carlos: 28
{Ana=25, Luis=30}
- Cada clave debe ser única
- Permite almacenar valores asociados a cada clave
Ejemplo completo de colecciones
import java.util.*;
public class ColeccionesEjemplo {
public static void main(String[] args) {
// ArrayList
List<String> frutas = new ArrayList<>();
frutas.add("Manzana");
frutas.add("Banana");
frutas.add("Cereza");
System.out.println("ArrayList: " + frutas);
// Set
Set<String> colores = new HashSet<>();
colores.add("Rojo");
colores.add("Verde");
colores.add("Azul");
colores.add("Rojo");
System.out.println("Set: " + colores);
// Map
Map<String, Integer> edades = new HashMap<>();
edades.put("Ana", 25);
edades.put("Luis", 30);
System.out.println("Map: " + edades);
}
}
Salida posible:
ArrayList: [Manzana, Banana, Cereza]
Set: [Rojo, Verde, Azul]
Map: {Ana=25, Luis=30}
Repasemos lo aprendido
Las colecciones en Java permiten almacenar y manejar grupos de elementos de manera flexible y eficiente. Los conceptos principales son:
- ArrayList: lista dinámica que permite duplicados y acceso por índice
- List: interfaz que define listas ordenadas
- Set: colección de elementos únicos, ideal para eliminar duplicados
- Map: colección de pares clave-valor, donde cada clave es única
Dominar las colecciones es esencial para desarrollar aplicaciones en Java que manejen grandes volúmenes de datos y requieran operaciones eficientes sobre listas, conjuntos y mapas.
Volver al indice de Programación en Java.