Junior — Middle
Kunt u uitleggen wat de term 'niet-terminale operatie' betekent bij het werken met datastromen in de Stream API?
sobes.tech AI
Antwoord van AI
In de Java Stream API worden operaties onderverdeeld in terminale en niet-terminale (intermediaire) operaties.
Een niet-terminale operatie is een operatie die een nieuwe stroom (Stream) teruggeeft en de gegevensverwerking niet meteen start. Het wordt gebruikt om een keten van transformaties op te bouwen, bijvoorbeeld filteren, mappen, sorteren.
Voorbeelden van niet-terminale operaties:
- filter()
- map()
- sorted()
- distinct()
Deze operaties zijn lui: ze worden niet uitgevoerd totdat een terminale operatie wordt aangeroepen, bijvoorbeeld, forEach(), collect(), count().
Voorbeeld:
List<String> list = Arrays.asList("a", "bb", "ccc");
list.stream()
.filter(s -> s.length() > 1) // niet-terminale
.map(String::toUpperCase) // niet-terminale
.forEach(System.out::println); // terminal
Op deze manier maken niet-terminale operaties het mogelijk om een keten van transformaties op te bouwen, terwijl de terminale operatie de uitvoering start.