Olá!
Segue minha resolução. Commitei no Github em razão de o código estar grande.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!