'java.uti.stream.Stream'
interface provides 'findFirst' method, it return an Optional describing the
first element of this stream, or an empty Optional if the stream is empty.
Test.java
Run Test.java, you can see below messages in console.
Find
the signature of findFirst method.
Optional<T>
findFirst()
Example 1: Get first employee
with firstName equal to 'Janaki'
Optional<Employee>
empOpt = emps.stream().filter(emp ->
emp.getFirstName().equals("Janaki")).findFirst();
if
(empOpt.isPresent()) {
System.out.println(empOpt.get());
}
Example 2: Get first employee
with id is odd number.
empOpt
= emps.stream().filter(emp -> emp.getId() % 2 != 0).findFirst();
if
(empOpt.isPresent()) {
System.out.println(empOpt.get());
}
Find
the below working example.
Employee.java
package com.sample.app.model; public class Employee { private int id; private String firstName; private String lastName; public Employee(int id, String firstName, String lastName) { this.id = id; this.firstName = firstName; this.lastName = lastName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public String toString() { return "Employee [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]"; } public Formatter formatter() { return new Formatter(); } public class Formatter { public String formattedInfo() { String firstName = Employee.this.firstName; String lastName = Employee.this.lastName; return firstName.toUpperCase() + "," + lastName.toUpperCase(); } } }
Test.java
package com.sample.app; import java.util.Arrays; import java.util.List; import java.util.Optional; import com.sample.app.model.Employee; public class Test { private static List<Employee> emps; static { loadEmployees(); } private static void loadEmployees() { Employee emp1 = new Employee(1, "Krishna", "Gurram"); Employee emp2 = new Employee(2, "Joel", "Chelli"); Employee emp3 = new Employee(3, "Gopi", "Battu"); Employee emp4 = new Employee(4, "Janaki", "Sriram"); Employee emp5 = new Employee(5, "Janaki", "Maj"); emps = Arrays.asList(emp1, emp2, emp3, emp4, emp5); } private static void printEmployees(List<Employee> emps) { emps.stream().forEach(System.out::println); } public static void main(String args[]) { System.out.println("All Employees"); printEmployees(emps); /* Get first matched employee with firstName Janaki */ System.out.println("\nFirst employee with matched firstName Janaki"); Optional<Employee> empOpt = emps.stream().filter(emp -> emp.getFirstName().equals("Janaki")).findFirst(); if (empOpt.isPresent()) { System.out.println(empOpt.get()); } /* Get first matched employee with odd id */ System.out.println("\nFirst employee with matched odd number id"); empOpt = emps.stream().filter(emp -> emp.getId() % 2 != 0).findFirst(); if (empOpt.isPresent()) { System.out.println(empOpt.get()); } } }
Run Test.java, you can see below messages in console.
All Employees Employee [id=1, firstName=Krishna, lastName=Gurram] Employee [id=2, firstName=Joel, lastName=Chelli] Employee [id=3, firstName=Gopi, lastName=Battu] Employee [id=4, firstName=Janaki, lastName=Sriram] Employee [id=5, firstName=Janaki, lastName=Maj] First employee with matched firstName Janaki Employee [id=4, firstName=Janaki, lastName=Sriram] First employee with matched odd number id Employee [id=1, firstName=Krishna, lastName=Gurram]
No comments:
Post a Comment