Consider an object Person having attributes id(String), name(String) and age(int). I want to collect the list of ids from List of Person where the name is not null.
class Person {
private String id;
private String name;
private int age;
}
Is there an approach purely based on streams API.
So far I could come up with below code:
List<Person> persons = methodReturningListOfPersons();
List<Person> validNamePersons = persons.stream()
.filter(person -> person.getName() != null)
.collect(Collectors.toList());
List<String> validNamePersonIds = new ArrayList<>();
for(Person p : validNamePersons) {
validNamePersonIds.add(p.getId());
}