Article image
Lilian Rodrigues
Lilian Rodrigues10/02/2025 23:43
Compartilhe

📌 Hierarquia do Collection Framework em Java

  • #Java

🔵 O JCF está dividido em três principais interfaces:

1️⃣ Interface Collection<E> (Raiz da Hierarquia)

  • Collection<E> é a interface-mãe de todas as coleções no Java (exceto Map).
  • Suas principais implementações são:
  • List<E> (Listas ordenadas, permitem elementos duplicados)
  • Set<E> (Conjuntos, não permitem elementos duplicados)
  • Queue<E> (Filas, seguem ordem específica de inserção/remoção)

2️⃣ Interface List<E> (Ordenada, Permite Duplicatas)

  • Implementações:
  • 🔹 ArrayList<E> → Baseado em array dinâmico, acesso rápido (O(1)).
  • 🔹 LinkedList<E> → Baseado em lista encadeada, inserção/remover rápido (O(1)).
  • 🔹 Vector<E> → Similar ao ArrayList, mas síncrono (Thread-safe).
  • 🔹 Stack<E> → Pilha (LIFO), baseada em Vector.

3️⃣ Interface Set<E> (Não Permite Duplicatas)

  • Implementações:
  • 🟢 HashSet<E> → Baseado em tabela hash, sem ordenação.
  • 🟢 LinkedHashSet<E> → Mantém a ordem de inserção.
  • 🟢 TreeSet<E> → Baseado em árvore vermelha-preta, mantém ordem natural.

4️⃣ Interface Queue<E> (Fila)

  • Implementações:
  • 🔺 PriorityQueue<E> → Elementos ordenados com base em prioridade.
  • 🔺 LinkedList<E> → Também implementa Queue, usada como Fila.
  • 🔺 ArrayDeque<E> → Implementa Deque (fila dupla).

5️⃣ Interface Deque<E> (Fila Dupla)

  • Implementações:
  • 🔵 ArrayDeque<E> → Implementação eficiente para Deque.
  • 🔵 LinkedList<E> → Também implementa Deque.

6️⃣ Interface Map<K, V> (Chave-Valor)

  • Map<K,V> não estende Collection<E> porque trabalha com pares chave-valor.
  • Implementações:
  • 🔶 HashMap<K,V> → Baseado em tabela hash, sem ordenação.
  • 🔶 LinkedHashMap<K,V> → Mantém a ordem de inserção.
  • 🔶 TreeMap<K,V> → Baseado em árvore, mantém ordem natural das chaves.
  • 🔶 Hashtable<K,V> → Similar ao HashMap, mas sincronizado.

🔥 Resumo

📌 Escolher a estrutura certa para o seu código é essencial para otimizar desempenho e consumo de memória.

  • 🚀 Se quiser ordenação, use TreeSet, TreeMap ou LinkedHashSet.
  • 🚀 Se precisar de acesso rápido, HashSet e HashMap são boas opções.
  • 🚀 Se precisa de fila, PriorityQueue ou Deque são recomendados.
Compartilhe
Comentários (0)