Junior
Wat is het belangrijkste idee van de Stream API in Java?
sobes.tech AI
Antwoord van AI
De kernidee van de Stream API is het bieden van een declaratieve manier om collecties gegevens te verwerken. In plaats van een imperatief iteratief aanpak met expliciete controle over lussen en toestanden, stellen streams je in staat om wat gedaan moet worden met de gegevens (filteren, transformeren, aggregatie) te beschrijven, terwijl de hoe-implementatie aan de API wordt overgelaten.
Belangrijke concepten:
- Onveranderlijkheid: Streams wijzigen de oorspronkelijke gegevensbron niet. Operaties op streams creëren nieuwe streams of resultaten.
- Lui evalueren: Veel stream-operaties, zoals
filter()enmap(), zijn tussenliggende operaties. Ze worden pas uitgevoerd wanneer een terminale operatie wordt aangeroepen, zoalscollect()offorEach(). Dit maakt optimalisatie mogelijk. - Pipeline: Stream-operaties kunnen worden gecombineerd in een pipeline. Elk element doorloopt de pipeline sequentieel of parallel.
- Parallel verwerking: Streams zijn ontworpen om eenvoudige parallelle verwerking van gegevens mogelijk te maken, vaak met minimale codewijzigingen (
parallelStream()).
Voordelen:
- Leesbaarder en expressiever code voor complexe operaties op collecties.
- Gemakkelijke parallelisatie.
- Verwijdering van boilerplate-code gerelateerd aan iteraties.
// Voorbeeld: Filteren en transformeren van een lijst met strings
List<String> namen = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<Integer> lengtes = namen.stream()
.filter(naam -> naam.startsWith("A")) // Tussenliggende operatie
.map(String::length) // Tussenliggende operatie
.collect(Collectors.toList()); // Terminale operatie
// lengtes bevat [5]