I would like to update the list of objects inside another list using streams api.
I have List<User> users
one that has List<Filter> filters
. I would like to update the elements corresponding to the user ID and the corresponding filterName, with the Filter object included as an argument. The map does not allow me to do this.
I tried doing below, but the map does not seem to allow multiple elements to be displayed.
public void update(String userID, Filter filter) {
users.stream()
.filter(element -> element.getUserId().equals(userID)
&& element.getFilters().stream().filter(f -> f.getName().equals(filter.getName())).findAny().isPresent())
.forEach(x -> {
x.getFilters().stream().map(s -> {
s.setCreatedOn(filter.getCreatedOn());
s.setDescription(filter.getDescription());
s.setEnabled(filter.isEnabled());
s.setFilterValue(filter.getFilterValue());
s.setReadOnly(filter.isReadOnly());
s.setModifiedOn(filter.getModifiedOn());
s.setName(filter.getName());
s.setType(filter.getType());
s.setValid(filter.isValid());
s.setEncrypted(filter.isEncrypted());
});
});
}
What is the method that can be used to perform an internal update List<Filter>
source
share