Question à propos la méthode reduce de stream()
Bonsoir TLM,
Je commence à tester le Java 8 , et j'ai les 3 instructions suivantes:
Code:
1 2 3 4 5 6 7 8 9
|
String names = employees.stream().map(e->e.getName()).reduce("", (a,b)->a+" - "+b);
Integer ageTotal = persons.stream().reduce(0, (somme,p)->somme+=p.getAge(),(s1,s2)->s1+s2);
persons
.stream()
.reduce((p1, p2) -> p1.age > p2.age ? p1 : p2)
.ifPresent(System.out::println); |
1- C'est quoi la différence entre un reduce avec 2 paramètres et reduce avec 3 paramètres?
2- Le troisième argument dans la deuxième instruction ((s1,s2)->s1+s2) sert à faire quoi?
3- D'après mes connaissances, Reduce est une opération terminale, pourquoi alors mettre ifPresent au final dans la troisième instruction?
Merci pour votre aide en avance!