| /home/oracle/labs/06CollectionOperations/examples/EmployeeSearch06/src/com/example/lambda/A04FindFirstLazy.java |
1 package com.example.lambda;
2
3 import java.util.List;
4 import java.util.Optional;
5
6
7
8 @author
9
10 public class A04FindFirstLazy {
11
12 public static void main(String[] args) {
13
14 List<Employee> eList = Employee.createShortList();
15
16 System.out.println("\n== CO Bonuses ==");
17 eList.stream()
18 .peek(e -> System.out.println("Stream start"))
19 .filter(e -> e.getRole().equals(Role.EXECUTIVE))
20 .peek(e -> System.out.println("Executives"))
21 .filter(e -> e.getState().equals("CO"))
22 .peek(e -> System.out.println("CO Executives"))
23 .map(e -> e.getSalary() * Bonus.byRole(e.getRole()))
24 .forEach( s -> System.out.printf(
25 " Bonus paid: $%,6.2f %n", s));
26
27 System.out.println("\n== First CO Bonus ==");
28 Employee tempEmp = new Employee.Builder().build();
29 Optional<Employee> result = eList.stream()
30 .peek(e -> System.out.println("Stream start"))
31 .filter(e -> e.getRole().equals(Role.EXECUTIVE))
32 .peek(e -> System.out.println("Executives"))
33 .filter(e -> e.getState().equals("CO"))
34 .peek(e -> System.out.println("CO Executives"))
35 .findFirst();
36
37 if (result.isPresent()){
38 result.get().printSummary();
39 }
40 }
41 }