I have the following code and I want to use the Stream API for this fragment:
for (Task task : deletedTasks) {
if (!Objects.isNull(task.getUser())) {
kafkaSenderTaskProducer.sendAutoRejectedTasksEvent(task.getId(), task.getUser().getId());
} else {
kafkaSenderTaskProducer.sendDeletedEvent(task);
}
}
For the second else condition I have code, but I don't know how to write code for the first condition:
deletedTasks.stream()
.filter(task -> Objects.isNull(task.getUser()))
.forEach(kafkaSenderTaskProducer::sendDeletedEvent);
How can I use the Stream API for the first condition?
You don't need to use stream or filter here. As simple forEach will work for you. Unnecessary use of stream in the code will have performance issue. You can do it as below:
deletedTasks.forEach(task -> {
if(task.getUser() == null) {
kafkaSenderTaskProducer.sendDeletedEvent(task);
} else {
kafkaSenderTaskProducer.sendAutoRejectedTasksEvent(task.getId(), task.getUser().getId());
}
})