How to solve java lambda filter future collection?
I got a future collection, And I want to filter out the false result returned in the collection, but using lambda
You can do this in one go and create the list with what you need.
Include the return value to eliminate the IDE warning.
List>> future =
childIds.getChildOrder()
.stream()
.map(i -> service.submit(new Some(i)))
.filter(i -> {
try {
return Boolean.FALSE.equals(i.get().get("success"));
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace(); //try to use a logger instead
}
return false;
})
.collect(Collectors.toList());
I'd really take a look at what you're trying to do here though. There's likely a simpler way.