Junior
¿Qué colecciones existen en Java?
sobes.tech AI
Respuesta de la IA
En Java, existen las siguientes interfaces principales de colecciones que forman parte del Java Collections Framework:
-
Collection: Interfaz base que define operaciones comunes sobre grupos de objetos. De ella heredan las subinterfaces:List: Colección ordenada (secuencia). Los elementos pueden repetirse. Soporta acceso por índice.ArrayList: Array regulable. Bueno para acceso rápido por índice y añadir al final. Lento para insertar/eliminar en medio.LinkedList: Lista doblemente enlazada. Bueno para insertar/eliminar al principio o al final. Lento para acceso por índice.Vector: Versión sincronizada deArrayList. Se considera obsoleta.Stack: Hereda deVector, implementa comportamiento de pila (LIFO).
Set: Colección que contiene solo elementos únicos. No garantiza orden.HashSet: Implementado con tabla hash. El más rápido para añadir, eliminar y verificar existencia. No garantiza orden.LinkedHashSet: Implementado como tabla hash + lista enlazada. Garantiza orden de inserción.TreeSet: Implementado con árbol rojo-negro. Almacena elementos en orden ordenado. Más lento queHashSet, pero más rápido queLinkedHashSetpara rangos de búsqueda.
Queue: Colección diseñada para almacenar elementos antes del procesamiento (FIFO - First-In, First-Out).PriorityQueue: Los elementos se almacenan según su orden natural o comparador. Se extrae el de mayor prioridad.Deque: (Double Ended Queue) Soporta inserción y eliminación en ambos extremos.ArrayDeque: Implementación de Deque basada en array. Más eficiente queLinkedListcomo cola/pila.
-
Map: Colección que almacena pares clave-valor. Las claves son únicas.HashMap: Implementado con tabla hash. El más rápido para añadir, eliminar y verificar existencia. No garantiza orden de claves.LinkedHashMap: Implementado como tabla hash + lista enlazada. Garantiza orden de inserción o acceso.TreeMap: Implementado con árbol rojo-negro. Almacena pares clave-valor en orden ordenado por claves. Más lento queHashMap.HashTable: Versión sincronizada deHashMap. Se considera obsoleta.
También existen clases obsoletas que no forman parte de JCF, pero a veces se encuentran:
VectorStackHashtableEnumeration(interfaz)