1

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());
}

0 Answers0