/home/oracle/labs/06CollectionOperations/examples/EmployeeSearch06/src/com/example/lambda/A10SortComparator.java
 1 package com.example.lambda;
 2 
 3 import java.util.Comparator;
 4 import java.util.List;
 5 import java.util.OptionalDouble;
 6 
 7 /**
 8  *
 9  * @author oracle
10  */
11 public class A10SortComparator {
12   public static void main(String[] args) {
13     List<Employee> eList = Employee.createShortList();
14     
15     System.out.println("\n== CO Bonus Details Comparator ==");
16         
17     eList.stream()
18       .filter(e -> e.getRole().equals(Role.EXECUTIVE))
19       .filter(e -> e.getState().equals("CO"))
20       .sorted(Comparator.comparing(Employee::getSurName))
21       .forEach(Employee::printSummary);        
22 
23     System.out.println("\n== CO Bonus Details Reversed ==");
24         
25     eList.stream()
26       .filter(e -> e.getRole().equals(Role.EXECUTIVE))
27       .filter(e -> e.getState().equals("CO"))
28       .sorted(Comparator.comparing(Employee::getSurName).reversed())
29       .forEach(Employee::printSummary);        
30         
31     System.out.println("\n== Two Level Sort, Dept then Surname ==");
32         
33     eList.stream()
34       .sorted(
35         Comparator.comparing(Employee::getDept)
36           .thenComparing(Employee::getSurName))
37       .forEach(Employee::printSummary);            
38     }  
39 }
40