Stream und faule Auswertung
Ich lese aus demJava 8 API auf der Stream-Abstraktion, aber ich verstehe diesen Satz nicht sehr gut:
Zwischenoperationen geben einen neuen Stream zurück. Sie sind immer faul; Das Ausführen einer Zwischenoperation wie filter () führt eigentlich keine Filterung durch, sondern erstellt einen neuen Stream, der beim Durchlaufen die Elemente des anfänglichen Streams enthält, die mit dem angegebenen Prädikat übereinstimmen. Das Durchlaufen der Pipeline-Quelle beginnt erst, wenn die Terminaloperation der Pipeline ausgeführt wird.
Wenn eine Filteroperation einen neuen Stream erstellt, enthält dieser Stream gefiltertes Element? Es scheint zu verstehen, dass der Stream Elemente nur dann enthält, wenn er mit einer Terminaloperation durchlaufen wird. Aber was enthält der gefilterte Stream dann? Ich bin verwirrt!!!