7.6 Liste apenas os pontos de todos os usuários com o map
Problema na abordagem tradicional: Criar uma lista manualmente e adicionar elementos um a um. Causa efeitos colaterais alterando variáveis externas. List pontos = new ArrayList(); usuarios.forEach(u -> pontos.add(u.getPontos())); Solução com map() no Stream: Transforma a lista sem necessidade de variáveis intermediárias. List pontos = usuarios.stream() .map(u -> u.getPontos()) .collect(Collectors.toList()); Simplificação com method reference: Deixa o código mais limpo e legível. List pontos = usuarios.stream() .map(Usuario::getPontos) .collect(Collectors.toList()); Explicação técnica: map() usa a interface funcional Function. O método apply() transforma um Usuario em um Integer.

Problema na abordagem tradicional:
- Criar uma lista manualmente e adicionar elementos um a um.
- Causa efeitos colaterais alterando variáveis externas.
List pontos = new ArrayList<>();
usuarios.forEach(u -> pontos.add(u.getPontos()));
Solução com map() no Stream:
- Transforma a lista sem necessidade de variáveis intermediárias.
List pontos = usuarios.stream()
.map(u -> u.getPontos())
.collect(Collectors.toList());
Simplificação com method reference:
- Deixa o código mais limpo e legível.
List pontos = usuarios.stream()
.map(Usuario::getPontos)
.collect(Collectors.toList());
Explicação técnica:
- map() usa a interface funcional Function.
- O método apply() transforma um Usuario em um Integer.