Olá!
Segue minha resolução. Commitei no Github em razão de o código estar grande.
Olá!
Segue minha resolução. Commitei no Github em razão de o código estar grande.
Olá, Victor! Tudo bem?
Fico muito contente em ver sua dedicação nos desafios do curso. Analisei seu código e ele está muito bem estruturado. Você demonstrou domínio sobre as operações intermediárias e terminais da API de Streams do Java.
Gostaria de destacar alguns pontos positivos e dar pequenas sugestões que podem tornar seu código ainda mais polido.
flatMap: No exercício 5, você utilizou corretamente o flatMap para transformar uma lista de listas em um fluxo único de números. Essa é exatamente a finalidade dessa operação.filter, map, sorted e limit de forma lógica e organizada.Method Reference: No exercício 2, você pode substituir a expressão lambda por uma referência de método para deixar o código mais limpo.
.map(q -> q.toUpperCase()).map(String::toUpperCase)Encadeamento de filtros: No exercício 7, você usou dois filter seguidos. Isso não está errado, mas você também pode optar por unir as condições com o operador lógico && dentro de um único filtro, caso prefira reduzir o número de chamadas.
// Convertendo para maiúsculas com Method Reference
List<String> palavras = Arrays.asList("java", "stream", "lambda");
palavras.stream()
.map(String::toUpperCase)
.forEach(System.out::println);
Continue praticando e compartilhando sua evolução no fórum. Seu progresso com Lambdas e Streams está excelente!