O Collections Framework
HashMap<K, V> armazena pares chave-valor. put(key, value) insere ou atualiza uma entrada, e get(key) a recupera — um HashMap não dá nenhuma garantia sobre a ordem de iteração, então código que depende de uma ordem específica precisa de uma estrutura diferente.
Main.java
Teste você mesmo →import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice"));
System.out.println(ages.get("Bob"));
}
}Output
30 25
HashSet
HashSet armazena valores únicos sem duplicatas — adicionar um valor que já está presente é simplesmente um no-op, por isso numbers.size() abaixo é 3, não 4, mesmo que add() tenha sido chamado quatro vezes.
Main.java
Teste você mesmo →import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<Integer> numbers = new HashSet<>();
numbers.add(5);
numbers.add(3);
numbers.add(5);
numbers.add(1);
System.out.println(numbers.size());
System.out.println(numbers.contains(3));
}
}Output
3 true
A seguir: lambdas e streams — a forma moderna e de estilo funcional do Java para escrever comportamento inline e transformar coleções.
Practice exercise
Crie um HashMap<String, Integer> chamado ages. Coloque "Alice" -> 30 e "Bob" -> 25 com put. Imprima ages.get("Alice").