Please note that in below examples, in order to get a Stream Object from List, you can also use List#parallelStream() method, but use it only if the List implementation supports thread-safety and parallelism (for example CopyOnWriteArrayList).

From Java 8 onwards, you can use Java Stream API and filter elements from a Collection like List.

In order to follow below example, create a class called Person and declare two variables, name as String and age as integer.

public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "[name : " +name + " , age : "+age +"]"; } }

Let's write a program to filter Person(s) with age greater than 30, but less than 40.

public static void filterListElementsUsingStream() { List<Person> persons = List.of( new Person("Person A", 29), new Person("Person B", 32), new Person("Person C", 45), new Person("Person D", 39) ); System.out.println("BEFORE filtering : " + persons); List<Person> fruitsFiltered = persons.stream(). filter(person -> person.getAge() >30 && person.getAge()<40) .collect(Collectors.toList()); System.out.println("AFTER filter : " + fruitsFiltered); }
Explanation of above code:

When you run the above program, you will get the below output.

BEFORE filtering : [[name : Person A , age : 29], [name : Person B , age : 32], [name : Person C , age : 45], [name : Person D , age : 39]]
AFTER filter : [[name : Person B , age : 32], [name : Person D , age : 39]]

Above example complete source code can be found here on Github

Similar Articles

  1. Filter and find an element from a List using Java Stream API (from Java 8 onwards)
  2. How to remove elements from a List
  3. How to remove elements from a List while iterating
  4. How to loop through elements of List in different ways