| /home/oracle/labs/06CollectionOperations/examples/EmployeeSearch06/src/com/example/lambda/A08CalcAvg.java |
1 package com.example.lambda;
2
3 import java.util.List;
4 import java.util.OptionalDouble;
5
6
7
8 @author
9
10 public class A08CalcAvg {
11 public static void main(String[] args) {
12 List<Employee> eList = Employee.createShortList();
13
14 System.out.println("\n== Average CO Bonus ==");
15 OptionalDouble result;
16
17 result = eList.stream()
18 .filter(e -> e.getRole().equals(Role.EXECUTIVE))
19 .filter(e -> e.getState().equals("CO"))
20 .mapToDouble(e -> e.getSalary() * Bonus.byRole(e.getRole()))
21 .average();
22
23 if (result.isPresent()){
24 System.out.printf("Average Bonuses paid: $%,6.2f %n",
25 result.getAsDouble());
26 }
27
28 System.out.println("\n== Average CO Bonus Details ==");
29
30 result = eList.stream()
31 .filter(e -> e.getRole().equals(Role.EXECUTIVE))
32 .filter(e -> e.getState().equals("CO"))
33 .peek(e -> System.out.print("Name: " + e.getGivenName()
34 + " " + e.getSurName() + " "))
35 .mapToDouble(e -> e.getSalary() * Bonus.byRole(e.getRole()))
36 .peek(d -> System.out.printf("Bonus paid: $%,6.2f %n", d))
37 .average();
38
39 if (result.isPresent()){
40 System.out.printf("Average Bonuses paid: $%,6.2f %n",
41 result.getAsDouble());
42 }
43 }
44 }