Active a = personList.stream()
.filter(person -> person.getActives() != null && !person.getActives().isEmpty()
.flatMap(person -> person.getActivities())
.filter(activity -> active.getStatus().equals(SOME_VALUE))
.reduce(null, (pos_a, activity) ->
(pos_a == null || a.getDueDate().isAfter(active.getDueDate()))? activity: pos_a)
return a;
Это позволит получить всех людей, у которых есть действия, выполнить потоковую передачу всех действий (flatMap) и отфильтровать их по статусу, а затем уменьшить список, сохранив самый старый из них