Search code examples
javafunctional-programmingjava-8functional-java

Filtering on Java 8 List


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

enter image description here

According to documentation, List has a filter method and this should work http://www.functionaljava.org/examples-java8.html

What am I missing?

Thanks


Solution

  • 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);