Olá. boa tarde!!
Gostaria de saber como ficaria a complexidade do algoritmo quando chamamos em sequencia o método filter() -> map() e forEach(). Nesse caso ele itera sobre a lista 3x?
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á. boa tarde!!
Gostaria de saber como ficaria a complexidade do algoritmo quando chamamos em sequencia o método filter() -> map() e forEach(). Nesse caso ele itera sobre a lista 3x?
Não sei se entendi bem a questão mas nesse código:
cursos.stream()
.filter(c -> c.getAlunos() > 100)
.map(c -> c.getAlunos())
.forEach(x -> System.out.println(x));o que acontece é o seguinte, vamos dizer que existem 500 cursos nessa lista.
Então o filter vai iterar por todos os cursos e devolver apenas aqueles que tem mais de 100 alunos, vamos dizer que retornou 30 cursos. Depois, o map vai iterar os 30 cursos e transformar em uma stream de inteiros, ou seja, mapeou de Curso para inteiro. Em seguida, o forEach irá iterar pelos 30 resultados inteiros retornados pelo map e imprimir no console.
Logo, nesse caso, teríamo:s 500 + 30 + 30 = 560 iterações.