Junior
¿Cuáles son las implementaciones de colecciones en el lenguaje de programación Java?
sobes.tech AI
Respuesta de la IA
-
Interfaces:
Collection: Interfaz base para todas las colecciones.List: Colección ordenada (con índices).Set: Colección que no contiene duplicados.SortedSet: Colección sin duplicados, cuyos elementos están ordenados.Map: Matriz asociativa (clave-valor).SortedMap: Matriz asociativa ordenada por claves.Queue: Colección para almacenar elementos antes de su procesamiento.Deque: Cola doblemente enlazada.
-
Clases (implementaciones principales):
-
Para
List:ArrayList: Array dinámico. Acceso rápido por índice, operaciones de inserción/eliminación lentas en el medio.LinkedList: Lista doblemente enlazada. Acceso lento por índice, operaciones rápidas de inserción/eliminación en el medio.Vector: Antiguo, sincronizado, análogo aArrayList.Stack: Subclase deVector, que implementa una pila (LIFO).
-
Para
Set:HashSet: Implementación basada en tabla hash. No garantiza orden.LinkedHashSet: Basado en tabla hash y lista enlazada. Mantiene el orden de inserción.TreeSet: Basado en árbol rojo-negro. Elementos ordenados en orden ascendente.
-
Para
Map:HashMap: Basado en tabla hash. No garantiza orden de pares clave-valor.Hashtable: Antiguo, sincronizado, análogo aHashMap.LinkedHashMap: Basado en tabla hash y lista enlazada. Mantiene el orden de inserción.TreeMap: Basado en árbol rojo-negro. Pares ordenados por clave.
-
Para
Queue:PriorityQueue: Cola de prioridad. Elementos extraídos en orden natural o por comparador.ArrayDeque: Implementación de doble cola basada en array.
-
-
Utilidades:
Collections: Métodos estáticos para trabajar con colecciones (ordenar, buscar, sincronizar, etc.).
// Ejemplo de uso de ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Ejemplo de uso de HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // No se añadirá el duplicado
System.out.println(numbers.size()); // 2
// Ejemplo de uso de HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Ejemplo de uso de PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (el de menor prioridad)