Sobes.tech
Junior

¿Qué colecciones existen en Java?

sobes.tech AI

Respuesta de la IA

El Framework de Colecciones de Java proporciona muchas colecciones para almacenar y gestionar datos. Las principales interfaces y sus implementaciones:

  • Collection: interfaz raíz.
    • List: colección ordenada que permite duplicados.
      • ArrayList: basada en un array, acceso rápido por índice, inserción/eliminación lenta en medio.
      • LinkedList: basada en una lista doblemente enlazada, inserción/eliminación rápida, acceso lento por índice.
      • Vector: equivalente a ArrayList pero seguro para hilos, obsoleto.
      • Stack: basada en Vector, principio LIFO.
    • Set: colección de elementos únicos, sin orden específico (excepto SortedSet).
      • HashSet: basada en una tabla hash, acceso y inserción/eliminación rápidos.
      • LinkedHashSet: mantiene el orden de inserción.
      • TreeSet: almacena elementos en orden ordenado.
    • Queue: colección de elementos, comúnmente usada para almacenar elementos antes del procesamiento en orden FIFO.
      • PriorityQueue: elementos extraídos en orden de prioridad.
      • ArrayDeque: cola doble.
    • Deque: cola doble, se pueden añadir y eliminar elementos desde ambos extremos.
  • Map: almacena pares clave-valor, las claves son únicas.
    • HashMap: basada en una tabla hash, acceso rápido por clave.
    • LinkedHashMap: mantiene el orden de inserción o acceso.
    • TreeMap: almacena pares en orden ordenado por clave.
    • Hashtable: equivalente a HashMap pero seguro para hilos, obsoleto.

Colecciones seguras para hilos:

  • Collections.synchronized*: envoltorios sobre colecciones existentes.
  • Concurrent*: paquete java.util.concurrent, colecciones con mejor rendimiento en entornos concurrentes.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

Y otras colecciones menos comunes.