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.