前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >练习-自定义比较规则实现类,实现排序

练习-自定义比较规则实现类,实现排序

作者头像
sr
发布2018-08-20 10:08:10
3030
发布2018-08-20 10:08:10
举报
文章被收录于专栏:swag codeswag code

题目

将员工在给定的代码中编写两个比较器并在EmpolyeeManger3中使用进行排序

1.实现按照编号升序排序

2.实现按照工资升序排序

EmployeeManager3.java

代码语言:javascript
复制
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

代码语言:javascript
复制
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;
 }


}

按照编号排序

代码语言:javascript
复制
public class EmpNoComparator implements Comparator<Employee>{

@Override
 public int compare(Employee e1,Employee e2) {
 return e1.getEmpno().compareTo(e2.getEmpno());
 }


}

按照工资比较

代码语言:javascript
复制
public class EmpSalComparator implements Comparator<Employee>{

@Override
 public int compare(Employee e1,Employee e2) {
 return e1.getSalary().compareTo(e2.getSalary());
 }


}

运行结果:

代码语言:javascript
复制
按照编号的排序如下:
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]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档