Sobes.tech
Junior

Quais coleções existem em Java?

sobes.tech IA

Resposta da IA

O framework de Collections do Java fornece várias coleções para armazenar e gerir dados. As principais interfaces e suas implementações:

  • Collection: interface raiz.
    • List: coleção ordenada que permite duplicados.
      • ArrayList: baseada em array, acesso rápido por índice, inserção/remoção lenta no meio.
      • LinkedList: baseada numa lista duplamente ligada, inserção/remoção rápida, acesso lento por índice.
      • Vector: equivalente ao ArrayList mas seguro para threads, obsoleto.
      • Stack: baseada em Vector, princípio LIFO.
    • Set: coleção de elementos únicos, sem ordem específica (exceto SortedSet).
      • HashSet: baseada numa tabela hash, acesso e inserção/remoção rápidos.
      • LinkedHashSet: mantém a ordem de inserção.
      • TreeSet: armazena elementos em ordem ordenada.
    • Queue: coleção de elementos, frequentemente usada para armazenar elementos antes do processamento em FIFO.
      • PriorityQueue: elementos extraídos por prioridade.
      • ArrayDeque: fila de duas extremidades.
    • Deque: fila de duas extremidades, pode adicionar e remover elementos de ambos os lados.
  • Map: armazena pares chave-valor, as chaves são únicas.
    • HashMap: baseada numa tabela hash, acesso rápido por chave.
    • LinkedHashMap: mantém a ordem de inserção ou acesso.
    • TreeMap: armazena pares em ordem ordenada por chave.
    • Hashtable: equivalente ao HashMap mas seguro para threads, obsoleto.

Coleções seguras para threads:

  • Collections.synchronized*: envoltórios sobre coleções existentes.
  • Concurrent*: pacote java.util.concurrent, coleções com melhor desempenho em ambientes concorrentes.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

E outras coleções menos comuns.