2023-01-26

Java streams perform different operations by multiple filters

I want to return different error messages minimum and maximum constraints on the values in a given list. I was hoping to use Java streams but i am having to filter the same list twice. Whereas using a for loop i would only have to go over the list once. Is there a better way to achieve this via streams?

My code looks something like this:

list.stream().filter(i -> i < 0).findAny().ifPresent(i -> System.out.println("below min"));

list.stream().filter(i -> i > 100).findAny().ifPresent(i -> System.out.println("above max"));

Using a for loop i can place two if conditions while traversing over the list once,

In actual implementation there are other constraints as well and I'm adding an error to a list, if it not already exists, depending on each violation.

Will i have to filter the list each time for each violation? Help would be appreciated!



No comments:

Post a Comment