完整题干:
编写员工Employee类,包含工号id、姓名name、工资salary等属性,令Employee类实现java.lang.comparable接口,并实现接口中的compareTo()方法,制定比较的规则。在测试类中创建几个Employee对象,利用java.util.Arrays类对其进行排序并打印输出排序结果。
关于比较的规则∶建议分别按照name和salary进行升序排序。
参考答案:
package chap6.excercise.ex7;
import java.util.Arrays;
public class Employee implements Comparable {
private String id;
private String name;
private double salary;
public Employee() {
}
public Employee(String id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 int compareTo(Object obj) {
if(obj instanceof Employee){
Employee e = (Employee)obj;
//return this.name.compareTo(e.name); //按照name升序排序
return (int)(this.salary-e.salary); //按照工资升序排序
}
return 0;
}
public String toString(){ //重写toString方法
return id+","+name+","+salary;
}
public static void main(String[] args){
Employee[] es = new Employee[5];
es[0]= new Employee("001","zhang",5000);
es[1]= new Employee("002","li",8000);
es[2]= new Employee("003","zhao",6000);
es[3]= new Employee("004","song",6500);
es[4]= new Employee("005","zhu",9500);
Arrays.sort(es);
for(Employee e: es){
System.out.println(e);
}
}
}