Quero saber para que serve a transformação de Stream<curso>
para Stream<string>
nesse caso?
E como isso acontece nesse trecho de código:
Stream<String> nomes = cursos.stream().map(Curso::getNome);
Quero saber para que serve a transformação de Stream<curso>
para Stream<string>
nesse caso?
E como isso acontece nesse trecho de código:
Stream<String> nomes = cursos.stream().map(Curso::getNome);
Imagine que a gente tem na mão um monte de Cursos mas queremos um monte de Nomes de Cursos. É isso que estamos fazendo. Nosso stream original é do tipo Curso
mas como o nome é apenas uma String, queremos no fim uma Stream<String>
.
O que o map
faz é percorrer o Stream e aplicar uma certa transformação em cada item. No caso estamos aplicando Curso::getNome
que significa que ele vai chamar o método .getNome()
em cada Curso. Como o getNome
devolve o nome de cada curso que é uma String, a Stream final acaba sendo Stream<String>
.