Slide 26
Slide 26 text
CASE3”LEGACY”
@bsideup
Map> agesBySex = new HashMap<>();
for (Person person : persons) {
List ages = agesBySex.get(person.sex());
if (ages == null) {
ages = new ArrayList<>();
agesBySex.put(person.sex(), ages);
}
ages.add(person.age());
}
Map averageAgeBySex = new HashMap<>();
for (Map.Entry> entry : agesBySex.entrySet()) {
double sum = 0;
for (Integer age : entry.getValue()) {
sum += age;
}
averageAgeBySex.put(entry.getKey(), sum / (double)
entry.getValue().size());
}
Map averageAgeBySex = persons.stream()
.collect(
Collectors.groupingBy(
Person::sex,
Collectors.averagingDouble(Person::age)
)
);