Мы также можем использовать Collectors.mapping
, чтобы проверить, является ли firstName
значение Raj
, а затем установить email
на null
в функции отображения (1-й аргумент), а затем соберите его в новом List
(2-й аргумент):
employees.stream().collect(Collectors.mapping(emp -> {
if("Raj".equals(emp.getFirstName())) {
emp.setEmail(null);
}
return emp;
}, Collectors.toList()));
И, как подсказывает nullpointer, не изменяйте объекты в потоке. Вы можете использовать конструктор копирования, чтобы сделать копию Employee
, имеющую firstName
как Raj
и установив для свойства email
значение null
:
employees.stream().collect(Collectors.mapping(emp -> {
if("Raj".equals(emp.getFirstName())) {
return new Employee(emp.getFirstName(), emp.getLastName(), null);
}
return emp;
}, Collectors.toList()));