I have a list of type List in functional java using List type provided by fj.data.List
import fj.data.List
List<Long> managedCustomers
I am trying to filter it using the following:
managedCustomers.filter(customerId -> customerId == 5424164219L)
I get this message
According to documentation, List has a filter method and this should work http://www.functionaljava.org/examples-java8.html
What am I missing?
Thanks
As already pointed out in the comment by @Alexis C
managedCustomers.removeIf(customerId -> customerId != 5424164219L);
should get you the filtered list if the customerId
equals 5424164219L
.
Edit - The above code modifies the existing managedCustomers
removing the other entries. And also the other way to do so is using the stream().filter()
as -
managedCustomers.stream().filter(mc -> mc == 5424164219L).forEach(//do some action thee after);
Edit 2 -
For the specific fj.List
, you can use -
managedCustomers.toStream().filter(mc -> mc == 5424164219L).forEach(// your action);
What you did seem a bit weird, Streams
(to use filter
) are commonly used like this (I don't know what you really want to do with the filtrate list, you can tell me in the comment tp get a more precise answer) :
//Select and print
managedCustomers.stream().filter(customerId -> customerId == 5424164219L)
.forEach(System.out::println);
//Select and keep
ArrayList<> newList = managedCustomers.stream().filter(customerId -> customerId == 5424164219L)
.collect(Collectors.toList());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With