En el caso de flatMap, yo lo veo un poco más claro de esta forma:
List<Email> allEmailsToNotify = getPlatziUsers()
.stream()
.filter(PlatziStudent::isEmailSubscribed)
.map(PlatziStudent::getEmails)
.flatMap(Collection::stream)
.collect(Collectors.toList());
Se nota un poco mejor que el Stream<Stream<Email>>
se convierte en Stream<Email>
, que finalmente se transforma en List<Email>
.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?