A volte sarebbe utile fare "qualcosa" (ad es. Stampare) con ogni elemento in un flusso tra le fasi di elaborazione del flusso, ad es. per il debug.Java stream "forEach" ma che non consuma stream
Un semplice esempio potrebbe assomigliare a questo, purtroppo questo non funziona come forEach
consuma il torrente:
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
List<String> filteredList =
list.stream()
.filter(s -> s.startsWith("t"))
.forEach(System.out::println)
.collect(Collectors.toList());
Come può essere raggiunto?
Eventuali duplicati di [Java 8 Lambda flusso forEach con più istruzioni] (http://stackoverflow.com/questions/31130457/java-8-lambda-stream-foreach-with-multiple-statements) –
@ DidierL Questo duplicato non è un buon esempio dato che _mutates_ l'elemento Stream all'interno dell'operazione 'peek'. – Tunaki
@Tunaki Immagino che uno che muta si adatti anche quando non si ha realmente bisogno di mutare. La risposta è davvero la stessa. Mi sembra che tutte queste domande relative a "sbirciare" siano quasi sempre le stesse. –