Quando devo usar as interfaces SET ou MAP no Java?
Em Java, tanto `Set` quanto `Map` são interfaces que fazem parte da biblioteca de coleções (`java.util`) e têm finalidades diferentes.
1. Set: Um `Set` é uma coleção que não permite elementos duplicados. Ele é usado quando você precisa armazenar um conjunto de elementos únicos e não está interessado na ordem em que esses elementos são armazenados. Exemplos comuns de implementações de `Set` incluem `HashSet`, `LinkedHashSet` e `TreeSet`.
Set<String> nomes = new HashSet<>();
nomes.add("Alice");
nomes.add("Bob");
nomes.add("Alice"); // Não será adicionado, pois já existe
2. Map: Um `Map` é uma coleção que associa chaves a valores. Cada chave em um `Map` é única e mapeia para um único valor. Isso é útil quando você precisa armazenar pares de chave-valor e recuperar rapidamente valores usando suas chaves. Exemplos de implementações de `Map` incluem `HashMap`, `LinkedHashMap` e `TreeMap`.
Map<String, Integer> idades = new HashMap<>();
idades.put("Alice", 25);
idades.put("Bob", 30);
int idadeDaAlice = idades.get("Alice"); // Retorna 25
Portanto, a escolha entre `Set` e `Map` depende da natureza dos dados que você deseja armazenar e da maneira como deseja acessá-los:
- Se você precisa armazenar uma coleção de elementos únicos, use `Set`.
- Se você precisa armazenar pares de chave-valor e deseja acessar os valores por suas chaves, use `Map`.
Lembre-se de que tanto `Set` quanto `Map` são interfaces, então você escolherá uma implementação específica com base nas características e no desempenho desejados para sua aplicação.