So come funziona l'espressione lambda e so che è un argomento per .filter()
che stabilisce i criteri per filtrare con. Ma non capisco come .filter()
usi l'argomento, in questo caso un'espressione lambda, perché .filter () non ha un'implementazione o almeno ne richiede uno in fase di compilazione. Cerco questa implementazione sconosciuta nel sito di Oracle ma ci sono solo poche parole che spiegano come funziona e nessun codice.
Questa implementazione è nascosta o viene creata automaticamente dal compilatore java?
Un'operazione di aggregazione ne ha bisogno?
double average = roster
.stream()
.filter(p -> p.getGender() == Person.Sex.MALE)
.mapToInt(Person::getAge)
.average()
.getAsDouble();
roster
è un'istanza List<Person>
di ArrayList<Person>
Person
è una semplice classe che rappresenta una persona