Java stream peek not setting the value to object [duplicate]

I am working with Steam's API, while iterating parent and child objects. I see some issues. How can I fix this?

  parent.getChild().stream().filter(child ->
        child.getStatus().equals("Pending") &&
          child.Date() != null && child.getDate().equals(LocalDate.now())
    ).peek(child -> child.setStatus("Updated"));

Above is not making the status as "Updated", even though the condition matches. But below code works.

parent.getChild().forEach(child -> {
 if (child.getStatus().equals("Pending") &&
      child.Date() != null && child.getDate().equals(LocalDate.now())) {
        child.setStatus("Updated");
      }
 });

Above code with foreach works but not the one with peek. Why is the one with peek not working?



Comments

Popular posts from this blog

Today Walkin 14th-Sept

Spring Elasticsearch Operations

Hibernate Search - Elasticsearch with JSON manipulation