Sobes.tech
Junior

Waarvoor worden streams in Java gebruikt?

sobes.tech AI

Antwoord van AI

Voor declaratieve verwerking van gegevenscollecties. Ze maken het mogelijk om sequentiële of parallelle bewerkingen uit te voeren op de elementen van collecties, zoals filteren, mappen (transformatie), aggregatie en het verzamelen van resultaten, waardoor de code leesbaarder en flexibeler wordt.

Belangrijkste voordelen:

  • Declaratief: In plaats van te beschrijven "hoe" de operatie uit te voeren (lussen, iterators), beschrijven we "wat" er gedaan moet worden met de gegevens.
  • Parallelisme: Het is gemakkelijk om tussen sequentiële en parallelle verwerking te schakelen, wat handig is voor systemen met meerdere kernen.
  • Lazy: Intermediaire operaties worden alleen uitgevoerd wanneer dat nodig is, bij aanwezigheid van een terminale operatie.
  • Compact: Vaak maakt het de code korter in vergelijking met traditionele lussen.

voorbeeld van sequentiële verwerking:

// Verkrijg een lijst van namen van gebruikers ouder dan 18 jaar en zet ze om in hoofdletters
List<User> users = ... // Jouw collectie van gebruikers
List<String> adultUserNames = users.stream()
    .filter(user -> user.getAge() >= 18) // Filter gebruikers op leeftijd
    .map(user -> user.getName().toUpperCase()) // Zet naam om in hoofdletters
    .collect(Collectors.toList()); // Verzamel resultaten in een lijst

voorbeeld van parallelle verwerking:

// Parallel optellen van grote getallen in een lijst
List<Long> numbers = ... // Jouw collectie van getallen
long sum = numbers.parallelStream()
    .reduce(0L, Long::sum); // Parallel optelling

Op deze manier worden streams in Java gebruikt voor een functionele en efficiënte aanpak van gegevensverwerking.