- import java.util.ArrayList; 
- import java.util.Collections; 
- public class Main { 
-   
-   
-         public static void-  main (String[]-  args )
 
-     { 
-   
-   
-         Employee number1= new Employee("David",20); 
-         Employee number2= new Employee("Michael",10); 
-         Employee number3= new Employee("Bob",15); 
-         Employee number4= new Employee("Tom",12); 
-         Employee number5= new Employee("Carl",16); 
-         list.add(number1); 
-         list.add(number2); 
-         list.add(number3); 
-         list.add(number4); 
-         list.add(number5); 
-         for (int i = 0; i < list.size(); i++) 
-         { 
-             Employee e = (Employee) list.get(i); 
-             System- . out- . println(- e. toString())- ; 
 
-         } 
-     } 
-   
- } 
-   
-   
- public class Employee 
- { 
-    // Class constants 
-    static public final int MAX_DAYS = 5; 
-    static public final int MAX_REGULAR_HOURS = MAX_DAYS * 8; 
-   
-    // Class variables 
-    static private int  numEmployees = 0; 
-   
-    // Instance variables 
-    private double payRate; 
-   
-   
-    // Constructor methods 
-   
-    // Initialize a new employee's name to the empty string and her 
-    // pay rate and hours worked to 0 
-    public Employee() 
-    { 
-       name = ""; 
-       payRate = 0; 
-   
-    } 
-   
-    // Initialize a new employee's attributes to the given parameters 
-    public-  Employee (String-  name,  double-  payRate )
 
-    { 
-       this.name = name; 
-       this.payRate = payRate; 
-       numEmployees++; 
-    } 
-   
-    // Set an employee's name 
-    public void-  setName  (String-  name )
 
-    { 
-       this.name = name; 
-    } 
-   
-    // Get an employee's name 
-    { 
-       return name; 
-    } 
-   
-    // Set an employee's pay rate 
-    public void setPayRate (double newRate) 
-    { 
-       payRate = newRate; 
-    } 
-   
-    // Get an employee's pay rate 
-    public double getPayRate () 
-    { 
-       return payRate; 
-    } 
-   
-   
-    // Compute and return an employee's weekly pay 
-    public double computePay() 
-    { 
-       return payRate * MAX_REGULAR_HOURS; 
-    } 
-   
-   
-    static public int getNumEmployees() 
-    { 
-      return numEmployees; 
-    } 
-   
-    // Return a string representation of a employee's name, pay rate 
-    // and hours worked. 
-    { 
-       String-  str =  "Name:      "-  + name  +  "\n"-  + 
 
-                    "Pay rate:  " + payRate + "\n"; 
-   
-       return str; 
-    } 
-   
-    public int-  compareTo (Object-  o )
 
-    { 
-        Employee employee= (Employee)o; 
-        if(this.getName().compareTo(employee.getName()) > 0) 
-            return 1; 
-        else 
-            if( this.getName().compareTo(employee.getName()) < 0) 
-                return -1; 
-        return 0; 
-    } 
- }