Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Reduce brukes for å redusere en liste til et enkelt svar. Reduce tar en akkumulatorfunksjon som argument. Denne akkumulatoren tar to og to element i lista og kombinerer disse på en gitt måteargument: Verdien så langt, og neste element. Reduce brukes ofte sammen med map. La oss finne totalalderen i lista vår.

 

Code Block
themeEclipse
languagejava
titleTradisjonell måte
int totalAge = 0;
for (Person p : persons) {
    totalAge += p.getAge();
}
System.out.println(totalAge);

 

 

Code Block
themeEclipse
languagejava
titleMed stream og lambda
 System.out.println(persons.stream().map(Person::getAge).reduce((e1a, e2b) -> e1a + e2b).get());

 

I tilfellet over er argumentet a den midlertidige summen av aldre, og b er alderen til neste person i lista. Grunnen til at vi kaller .get() på slutten er fordi reduce returnerer en objekt av typen Optional. Det er en container-type som kan inneholde et eksisterende objekt, eller null. Dersom det inneholder et faktisk objekt, vil isPresent() returnere true, og get() vil returnere verdien. Reduce kan også ta i bruk det doble kolonet. La oss finne maksimumsalderen:

...