Sobes.tech
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 de ArrayList. Se considera obsoleta.
      • Stack: Hereda de Vector, 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 que HashSet, pero más rápido que LinkedHashSet para 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 que LinkedList como 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 que HashMap.
    • HashTable: Versión sincronizada de HashMap. Se considera obsoleta.

También existen clases obsoletas que no forman parte de JCF, pero a veces se encuentran:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (interfaz)