Apoio escrito: escolher e transformar coleções
Este apoio reexplica os conceitos centrais com um catálogo pequeno. List mantém uma sequência e aceita repetições; Set representa valores únicos; Map associa chaves a valores. Generics registram o tipo esperado e permitem que o compilador encontre misturas indevidas.
Um record declara dados com componentes nomeados. A Stream API encadeia operações sobre uma fonte: filter seleciona, map transforma e toList reúne o resultado.
import java.util.List;
public class Catalogo {
record Produto(String codigo, int estoque) {}
public static void main(String[] args) {
List<Produto> produtos = List.of(
new Produto("B2", 3),
new Produto("A1", 0),
new Produto("C3", 5));
List<String> disponiveis = produtos.stream()
.filter(produto -> produto.estoque() > 0)
.map(Produto::codigo)
.sorted()
.toList();
System.out.println(disponiveis); // [B2, C3]
}
}
A lista original continua com três produtos; a pipeline cria outra lista com os códigos dos que têm estoque. Para apenas verificar se um código existe, Set pode expressar melhor a regra; para localizar produto pelo código, use um Map.
Material complementar da Fernanda
- Guia de Java intermediário — Acompanhe packages, coleções, generics, records e streams. Um record não torna os objetos referenciados profundamente imutáveis; uma operação terminal de stream também pode retornar um número ou booleano, sem criar uma coleção.
Pratique com /aprender
Copie o comando e cole no chat para iniciar uma prática guiada:
/aprender Pratique List, Set, Map, generics, records e Stream API em Java 21 com um catálogo pequeno. Dê uma necessidade concreta e peça que eu escolha a estrutura ou preveja a saída de uma transformação. Uma pergunta por vez; não revele a solução antes da tentativa.
