天天看點

實作Comparable接口

1、  要求修改實驗三自定義的Employee類,使其實作Comparable接口;

定義ReportCard類,在其中定義一員工對象的集合,并按員工姓名的字母排序傳回員工姓名和薪水的報表;

定義EmployeeTest類,通過在其中編寫測試代碼,驗證員工集合中的員工按姓名字母排序輸出; 

import java.util.*;

class Employee implements Comparable<Employee> {

    private String name;

    private float salary;

    private int id;

    private int nextId;     

    Employee(String name,float salary,int id,int nextId){

  this.name=name;

  this.salary=salary;

  this.id=id;

  this.nextId=nextId;

    }

    String getName(){

     return name;

    }

    float getSalary(){

  return salary;

    }

    int getId(){

     return id;

    }

    int getNextId(){

     return nextId;

    }

    public int compareTo(Employee emp){

     return this.getName().compareTo(emp.getName());

    } 

}

class ReportCard {

 ArrayList<Employee> employees = new ArrayList<Employee>();

 void addEmployee(Employee emp){

     employees.add(emp);

 }

 String getInfo(){ 

  StringBuilder buff =new StringBuilder(); 

  Collections.sort(employees);

     for (Employee emp:employees)

      buff.append(

         emp.getName() + "  "+

         emp.getSalary() +"  "+

         "/n-----------------------/n");

     return buff.toString();

    }

}

class EmployeeTest{

 public static void main(String[] args){

  ReportCard reportcard=new ReportCard();

  Employee emp1=new Employee("zzhen",1500,1001,1002);  

  Employee emp2=new Employee("asdfg",2000,1002,1003);  

  Employee emp3=new Employee("htygd",2500,1003,1008);    

  reportcard.addEmployee(emp1);

  reportcard.addEmployee(emp2);

  reportcard.addEmployee(emp3);

  System.out.print(reportcard.getInfo());

 }

}