Java 8 Stream Filter with findAny orElse Example

In this article we are going to see about Java 8 Stream filter() , findAny() and orElse() example program.

Employee.java

package com.ehowtonow.java8;

public class Employee {

 private String name;
 private int age;

 public Employee(String name, int age) {
  this.setName(name);
  this.setAge(age);
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }
 
 @Override
 public String toString() {
  return "Employee {name : "+name+" , age : "+age+"}";
 }
}

StreamFindAny.java

package com.ehowtonow.java8;

import java.util.Arrays;
import java.util.List;

public class StreamFindAny {

 public static void main(String[] args) {
  //Before Java 8
  System.out.println("Before Java 8");
  List employees = Arrays.asList(
                new Employee("Sachin Tendulkar", 41),
                new Employee("MS Dhoni", 34),
                new Employee("Rahul Dravid", 40),
                new Employee("Sourav Ganguly", 40)
        );


  Employee employee = getEmployeeByName(employees, "Rahul Dravid");
  
  System.out.println(employee);
  
  //Java 8 
  System.out.println("Using Java 8 filter(), findAny(), orElse()");
  Employee result1 = employees.stream()                        // Convert to steam
                 .filter(x -> "Rahul Dravid".equals(x.getName()))        // we want "Rahul Dravid" only
                 .findAny()                                      // If 'findAny' then return found
                 .orElse(null);                                  // If not found, return null

     System.out.println(result1);

     Employee result2 = employees.stream()
              .filter(x -> "MS Dhoni".equals(x.getName()))
              .findAny()
              .orElse(null);

     System.out.println(result2);

    
 }

 private static Employee getEmployeeByName(List employees, String name) {

  Employee result = null;
  for (Employee employee : employees) {
   if (name.equals(employee.getName())) {
    result = employee;
   }
  }
  return result;
 }
}

Output
Before Java 8
Employee {name : Rahul Dravid , age : 40}
Using Java 8 filter(), findAny(), orElse()
Employee {name : Rahul Dravid , age : 40}
Employee {name : MS Dhoni , age : 34}


Ask your questions in eHowToNow Forum

Post your technical, non-technical doubts, questions in our site. Get answer as soon as possible, meanwhile you can help others by answering, unanswered questions.
To Ask new Question : Ask Question
Check our existing discussions : Questions & Answers

  1. Java 8 New Features Overview
  2. Java – Collector Interface
  3. Java – ToLongBiFunction Interface
  4. java.util.function Package
  5. Java 8 Sort Map by Value
  6. Java 8 – filter the null values from Stream Example
  7. Lambda expressions are allowed only at source level 1.8 or above
  8. Java – IntUnaryOperator Interface
  9. Java 8 Stream Collectors groupingBy Example
  10. Java – Predicate Interface
  11. Java – ToIntFunction Interface
  12. Java – BaseStream Interface
  13. Java 8 Stream Filter with findAny orElse Example
  14. Java 8 convert List to Map example
  15. Java – LongStream Interface

Be the first to comment

Leave a Reply