Junior
Quais são as implementações de coleções na linguagem de programação Java?
sobes.tech IA
Resposta da IA
-
Interfaces:
Collection: Interface base para todas as coleções.List: Coleção ordenada (com índices).Set: Coleção que não contém duplicados.SortedSet: Coleção sem duplicados, cujos elementos estão ordenados.Map: Matriz associativa (chave-valor).SortedMap: Matriz associativa ordenada por chaves.Queue: Coleção para armazenar elementos antes do seu processamento.Deque: Fila de duas pontas.
-
Classes (principais implementações):
-
Para
List:ArrayList: Array dinâmico. Acesso rápido por índice, operações de inserção/remoção lentas no meio.LinkedList: Lista duplamente ligada. Acesso lento por índice, operações rápidas de inserção/remover no meio.Vector: Antigo, sincronizado, equivalente aArrayList.Stack: Subclasse deVector, que implementa uma pilha (LIFO).
-
Para
Set:HashSet: Implementação baseada em tabela de hash. Não garante ordem.LinkedHashSet: Baseado em tabela de hash e lista ligada. Mantém a ordem de inserção.TreeSet: Baseado em árvore vermelho-preto. Elementos ordenados em ordem crescente.
-
Para
Map:HashMap: Baseado em tabela de hash. Não garante ordem de pares chave-valor.Hashtable: Antigo, sincronizado, equivalente aHashMap.LinkedHashMap: Baseado em tabela de hash e lista ligada. Mantém a ordem de inserção.TreeMap: Baseado em árvore vermelho-preto. Pares ordenados por chave.
-
Para
Queue:PriorityQueue: Fila de prioridade. Elementos extraídos na ordem natural ou por comparador.ArrayDeque: Implementação de fila de duas pontas baseada em array.
-
-
Utilitários:
Collections: Métodos estáticos para trabalhar com coleções (ordenar, buscar, sincronizar, etc.).
// Exemplo de uso de ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Exemplo de uso de HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Duplicado não será adicionado
System.out.println(numbers.size()); // 2
// Exemplo de uso de HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Exemplo de uso de PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (menor prioridade)