I have 2 methods for getting average age of woman, and second for getting average age of man. I need to do one method to agregate this 2 methods.
This method as first parameter should have list of person, and as a second parameter function what will decide if we are looking for man or woman average age.
This is my methods:
public double getMenAverageAge(List<Person> personList){
return Optional.ofNullable(personList)
.orElseGet(ArrayList::new)
.stream()
.filter(Objects::nonNull)
.filter(p -> !Boolean.parseBoolean(String.valueOf(p.getFirstName().endsWith("a"))))
.mapToDouble(Person::getAge)
.average()
.orElse(0);
}
public double getAverageWomenAge(List<Person> personList){
return Optional.ofNullable(personList)
.orElseGet(ArrayList::new)
.stream()
.filter(Objects::nonNull)
.filter(p-> Boolean.parseBoolean(String.valueOf(p.getFirstName().endsWith("a"))))
.mapToDouble(Person::getAge)
.average()
.orElse(0);
}
Any ideas?