Java Coleções Intermediário
List, Set e Map
As coleções em Java são estruturas que armazenam e organizam grupos de objetos. As três interfaces principais são List, Set e Map, cada uma com características e implementações específicas. List mantém a ordem de inserção e permite elementos duplicados; Set não permite duplicatas e não garante ordem (a menos que se use LinkedHashSet ou TreeSet); Map associa chaves a valores, sem chaves duplicadas.
ArrayList é a implementação mais usada de List, baseada em array redimensionável, com acesso rápido por índice. HashSet é a implementação mais comum de Set, usando tabela hash para garantir unicidade com bom desempenho. HashMap é a implementação padrão de Map, também baseada em hash, ideal para buscas rápidas por chave.
A escolha da implementação depende do que você precisa: ordem, unicidade, desempenho de busca ou associação chave-valor. Por exemplo, se precisa de acesso posicional, use ArrayList; se precisa evitar duplicatas, use HashSet; se precisa mapear chaves a valores, use HashMap.
Pontos-chave
Listmantém ordem de inserção e permite duplicatas;ArrayListé a implementação mais usada.Setnão permite elementos duplicados;HashSeté a implementação mais comum.Mapassocia chaves únicas a valores;HashMapé a implementação padrão.- Escolha a implementação conforme a necessidade: ordem, unicidade, busca rápida ou associação chave-valor.
- Use
ArrayListpara listas ordenadas,HashSetpara conjuntos sem duplicatas eHashMappara dicionários.
import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.Map;
public class ColecoesExemplo {
public static void main(String[] args) {
// List: mantém ordem e permite duplicatas
List<String> nomes = new ArrayList<>();
nomes.add("Ana");
nomes.add("Bruno");
nomes.add("Ana"); // duplicata permitida
System.out.println("List: " + nomes);
// Set: não permite duplicatas
Set<String> nomesUnicos = new HashSet<>();
nomesUnicos.add("Ana");
nomesUnicos.add("Bruno");
nomesUnicos.add("Ana"); // duplicata ignorada
System.out.println("Set: " + nomesUnicos);
// Map: associa chave a valor
Map<String, Integer> idades = new HashMap<>();
idades.put("Ana", 25);
idades.put("Bruno", 30);
idades.put("Ana", 26); // sobrescreve valor anterior
System.out.println("Map: " + idades);
System.out.println("Idade da Ana: " + idades.get("Ana"));
}
}