I am trying to convert normal Java code to Streams but failing to do so. Can anyone please help here?
Here's the code I am trying to convert
Set<Strings> restrictedValues = getRestrictedValues();
for (Customer customer : request.getCustomers()) {
for (Order order : customer.getOrders()) {
for (String restrictedValue : restrictedValues) {
if (order.isItemExcluded(restrictedValue)) {
response.setExcludedItem(order.getId());
}
if (treatment.isItemIncluded(restrictedValue)) {
response.setIncludedItem(order.getId());
}
}
}
}
What I have done so far is below, I am kinda lost here.
request.getCustomers().stream()
.forEach(customer->{
customer.getOrders().stream()
.forEach(order->{
order.isItemExcluded(restrictedValue)
}).collect(????) //What to do now });</code>
request.getCustomers()
.stream()
.flatMap(customer -> customer.getOrders().stream())
.forEach(order -> {
if(restrictedValues.stream().anyMatch(order::isItemExcluded))
response.setExcludedItem(order.getId());
if(restrictedValues.stream().anyMatch(order::isItemIncluded))
response.setIncludedItem(order.getId());
}));