本例子是说:要想使用Arrays 类的 sort() 功能,就必须实现 Comparable
import java.util.*;
public class EmployeeSortTest
{
public static void main(String [] args)
{
Employee_from_interface[] staff=new Employee_from_interface[3];
//用经理和员工来填充这个staff数组
staff[0]=new Employee_from_interface("Tom Zhou",35000,2022,7,10);
staff[1]=new Employee_from_interface("Tom Zhou",75000,2022,7,10);
staff[2]=new Employee_from_interface("Jerry Mouse",38000,2022,8,10);
Arrays.sort(staff);
//打印出数组的信息
for(Employee_from_interface e:staff)
{
System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
}
}
}
class Employee_from_interface implements Comparable
{
public Employee_from_interface(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise=salary*byPercent/100;
salary+=raise;
}
//根据赚钱薪水的多少来 比较雇员
//返回 负数1, 如果薪水比other 少,0代表相等 ,正数1代表赚的比other 多
public int compareTo(Employee_from_interface other)
{
if(salaryother.salary) return 1;
return 0;
}
private String name;
private double salary;
private Date hireDay;
}
class Employee
{
public Employee(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise=salary*byPercent/100;
salary+=raise;
}
private String name;
private double salary;
private Date hireDay;
}
运行结果:
name=Tom Zhou,salary=35000.0
name=Jerry Mouse,salary=38000.0
name=Tom Zhou,salary=75000.0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)