Junior — Middle
Wordt de gegevensstroom uitgevoerd zonder de eindbewerking te starten?
sobes.tech AI
Antwoord van AI
In Java wordt een gegevensstroom (stream) niet uitgevoerd zonder het aanroepen van een terminale operatie. Streams in Java zijn lui: tussenbewerkingen (bijvoorbeeld map, filter) beschrijven alleen transformaties, maar worden niet meteen uitgevoerd.
Voorbeeld:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Hier gebeurt niets, omdat er geen terminale operatie is
List<Integer> result = stream.collect(Collectors.toList()); // Terminale operatie, start de berekeningen
Zonder het aanroepen van een terminale operatie (collect, forEach, reduce, enz.) wordt de stroom niet verwerkt en vinden er geen berekeningen plaats.