Junior
Que coleções existem em Java?
sobes.tech IA
Resposta da IA
Em Java, existem as seguintes interfaces principais de coleções que fazem parte do Java Collections Framework:
-
Collection: Interface base que define operações comuns sobre grupos de objetos. Dela herdam as subinterfaces:List: Coleção ordenada (sequência). Os elementos podem repetir-se. Suporta acesso por índice.ArrayList: Array regulável. Bom para acesso rápido por índice e adição ao final. Lento para inserir/remover no meio.LinkedList: Lista duplamente ligada. Bom para inserir/remover no início ou no final. Lento para acesso por índice.Vector: Versão sincronizada deArrayList. Considerada obsoleta.Stack: Herda deVector, implementa comportamento de pilha (LIFO).
Set: Coleção que contém apenas elementos únicos. Não garante ordem.HashSet: Implementado com tabela hash. O mais rápido para adicionar, remover e verificar existência. Não garante ordem.LinkedHashSet: Implementado como tabela hash + lista ligada. Garante ordem de inserção.TreeSet: Implementado com árvore vermelho-preto. Armazena elementos em ordem ordenada. Mais lento queHashSet, mas mais rápido queLinkedHashSetpara buscas por intervalos.
Queue: Coleção projetada para armazenar elementos antes do processamento (FIFO - First-In, First-Out).PriorityQueue: Os elementos são armazenados de acordo com sua ordem natural ou comparador. Extrai o de maior prioridade.Deque: (Double Ended Queue) Suporta inserção e remoção em ambos os extremos.ArrayDeque: Implementação de Deque baseada em array. Mais eficiente queLinkedListcomo fila/pilha.
-
Map: Coleção que armazena pares chave-valor. As chaves são únicas.HashMap: Implementado com tabela hash. O mais rápido para adicionar, remover e verificar existência. Não garante ordem das chaves.LinkedHashMap: Implementado como tabela hash + lista ligada. Garante ordem de inserção ou acesso.TreeMap: Implementado com árvore vermelho-preto. Armazena pares chave-valor em ordem ordenada por chaves. Mais lento queHashMap.HashTable: Versão sincronizada deHashMap. Considerada obsoleta.
Existem também classes obsoletas que não fazem parte do JCF, mas às vezes são encontradas:
VectorStackHashtableEnumeration(interface)