Sobes.tech
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.