Sobes.tech
Junior — Middle

Wanneer vindt de initialisatie van Stream plaats bij het gebruik van de Stream API?

sobes.tech AI

Antwoord van AI

De initialisatie van een Stream in Java vindt plaats op het moment dat een terminale operatie wordt aangeroepen. Tot dat moment zijn operaties op de Stream lui (lazy) en worden ze niet uitgevoerd.

Dat wil zeggen, wanneer je een Stream aanmaakt en tussenoperaties (bijvoorbeeld filter(), map()) toepast, vormen deze alleen een verwerkingsketen, maar starten geen berekeningen.

Voorbeeld:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase);
// Hier gebeurt niets

List<String> result = stream.collect(Collectors.toList()); // Terminale operatie
// Hier wordt de verwerking van de elementen uitgevoerd

Dus wordt de Stream geïnitialiseerd en begint het gegevens te verwerken alleen wanneer een terminale operatie wordt aangeroepen, zoals collect(), forEach(), reduce(), enzovoort.