Bonsoir TLM,

Je commence à tester le Java 8 , et j'ai les 3 instructions suivantes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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!