Junior
O que são HashMap e Set, e em que casos é melhor usá-los?
sobes.tech IA
Resposta da IA
HashMap é uma coleção que armazena pares chave-valor. As chaves são únicas, e os valores podem repetir-se. Utiliza hashing para acesso rápido (em média O(1)) aos elementos por chave.
Set é uma coleção que armazena elementos únicos. Não garante a ordem de armazenamento, a menos que seja utilizada uma implementação específica (por exemplo, LinkedHashSet). As operações de adição, remoção e verificação de existência de um elemento são geralmente realizadas em O(1). Existem várias implementações, por exemplo:
HashSet: Não garante a ordem dos elementos.LinkedHashSet: Mantém a ordem de inserção.TreeSet: Armazena os elementos em ordem ordenada.
Quando usar:
- HashMap:
- Quando se necessita de uma pesquisa, inserção ou remoção eficiente por chave.
- Para armazenar dados associados (por exemplo, um dicionário).
- Quando é necessário verificar rapidamente a existência de um valor por chave.
- Set:
- Quando é necessário armazenar apenas elementos únicos.
- Para verificar eficientemente se um elemento está na coleção.
- Para realizar operações de conjuntos (união, interseção).
Exemplo de uso de HashMap:
// Criar HashMap
HashMap<String, Integer> idades = new HashMap<>();
// Adicionar elementos
idades.put("Alice", 30);
idades.put("Bob", 25);
idades.put("Charlie", 35);
// Obter valor por chave
int idadeBob = idades.get("Bob"); // idadeBob = 25
// Verificar se a chave existe
boolean contemAlice = idades.containsKey("Alice"); // contemAlice = true
Exemplo de uso de HashSet:
// Criar HashSet
HashSet<String> nomes = new HashSet<>();
// Adicionar elementos
nomes.add("Alice");
nomes.add("Bob");
nomes.add("Charlie");
nomes.add("Alice"); // Não será adicionado, pois já existe
// Verificar se um elemento existe
boolean contemBob = nomes.contains("Bob"); // contemBob = true
// Iterar sobre os elementos
for (String nome : nomes) {
System.out.println(nome);
}