题目
将员工在给定的代码中编写两个比较器并在EmpolyeeManger3中使用进行排序
1.实现按照编号升序排序
2.实现按照工资升序排序
EmployeeManager3.java
public class EmployeeManager3 {
public List<Employee> emps=new ArrayList<Employee>();
public static void main(String[] args) {
EmployeeManager3 em=new EmployeeManager3();
List<Employee> emps=em.getEmps();
//调用排序方法1
Collections.sort(emps, new EmpNoComparator());
System.out.println("按照编号的排序如下:");
for(Employee emp:emps){
System.out.println(emp);
}
//调用排序方法2
Collections.sort(emps, new EmpSalComparator());
System.out.println("按照工资的排序如下:");
for(Employee emp:emps){
System.out.println(emp);
}
}
public List<Employee> getEmps() {
initEmps();
return emps;
}
public void initEmps() {
Employee emp=new Employee();
emp.setEmpno("10006");
emp.setName("Lucy");
emp.setSalary(2000.0);
emps.add(emp);
emp=new Employee();
emp.setEmpno("10002");
emp.setName("HanMeimei");
emp.setSalary(3000.0);
emps.add(emp);
emp=new Employee();
emp.setEmpno("10003");
emp.setName("Poly");
emp.setSalary(3000.0);
emps.add(emp);
emp=new Employee();
emp.setEmpno("10004");
emp.setName("John");
emp.setSalary(5000.0);
emps.add(emp);
emp=new Employee();
emp.setEmpno("10005");
emp.setName("Green");
emp.setSalary(5000.0);
emps.add(emp);
}
}
Employee.java
public class Employee{
private String empno;
private String name;
private Double salary;
public String getEmpno() {
return empno;
}
public void setEmpno(String empno) {
this.empno = empno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
@Override
public String toString() {
return empno+","+name+","+salary;
}
}
按照编号排序
public class EmpNoComparator implements Comparator<Employee>{
@Override
public int compare(Employee e1,Employee e2) {
return e1.getEmpno().compareTo(e2.getEmpno());
}
}
按照工资比较
public class EmpSalComparator implements Comparator<Employee>{
@Override
public int compare(Employee e1,Employee e2) {
return e1.getSalary().compareTo(e2.getSalary());
}
}
运行结果:
按照编号的排序如下:
10002,HanMeimei,3000.0
10003,Poly,3000.0
10004,John,5000.0
10005,Green,5000.0
10006,Lucy,2000.0
按照工资的排序如下:
10006,Lucy,2000.0
10002,HanMeimei,3000.0
10003,Poly,3000.0
10004,John,5000.0
10005,Green,5000.0[/successbox]