//TestEmployeeArraySortByLambdas.java

import java.util.Arrays;

public class TestEmployeeArraySortByLambdas
{
    public static void main(String[] args)
    {
        Employee[] employeeArray =
        {
            new Employee("Frank", 5, 28),
            new Employee("Jorge", 1, 19),
            new Employee("Bill", 6, 34),
            new Employee("Michel", 3, 10),
            new Employee("Simpson", 7, 8),
            new Employee("Clark", 4, 16),
            new Employee("Lee", 8, 40),
            new Employee("Mark", 2, 30)
        };

        System.out.println("\nName\tID#\tAge");
        System.out.println("===================");
        for (Employee e : employeeArray)
        {
            System.out.println(e);
        }
        Arrays.sort
        (
            employeeArray, (e1, e2) -> e1.getName().compareTo(e2.getName())
        );
        System.out.println("\nName\tID#\tAge");
        System.out.println("===================");
        for (Employee e : employeeArray)
        {
            System.out.println(e);
        }

        Arrays.sort
        (
            employeeArray, (e1, e2) -> e1.getId() - e2.getId()
        );
        System.out.println("\nName\tID#\tAge");
        System.out.println("===================");
        for (Employee e : employeeArray)
        {
            System.out.println(e);
        }

        Arrays.sort
        (
            employeeArray, (e1, e2) -> e1.getAge() - e2.getAge()
        );
        System.out.println("\nName\tID#\tAge");
        System.out.println("===================");
        for (Employee e : employeeArray)
        {
            System.out.println(e);
        }
    }
}
/*  Output:

    Name    ID#     Age
    ===================
    Frank   5       28
    Jorge   1       19
    Bill    6       34
    Michel  3       10
    Simpson 7       8
    Clark   4       16
    Lee     8       40
    Mark    2       30

    Name    ID#     Age
    ===================
    Bill    6       34
    Clark   4       16
    Frank   5       28
    Jorge   1       19
    Lee     8       40
    Mark    2       30
    Michel  3       10
    Simpson 7       8

    Name    ID#     Age
    ===================
    Jorge   1       19
    Mark    2       30
    Michel  3       10
    Clark   4       16
    Frank   5       28
    Bill    6       34
    Simpson 7       8
    Lee     8       40

    Name    ID#     Age
    ===================
    Simpson 7       8
    Michel  3       10
    Clark   4       16
    Jorge   1       19
    Frank   5       28
    Mark    2       30
    Bill    6       34
    Lee     8       40
*/
