image

Acesse bootcamps ilimitados e +650 cursos

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

📌 Hierarquia do Collection Framework em 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)