【发布时间】:2026-02-01 22:05:01
【问题描述】:
我得到了下面的代码作为家庭作业。我被要求为员工对象实现比较器。 compare 方法返回一个 int。但是,如果您比较它们,我在员工类中的所有方法都不会返回 int。谁能给我一些关于比较方法应该如何工作的指导?谢谢
import java.util.*;
import java.io.*;
public class EmployeeClient
{
//A Comparator for Employees
// Primary key : Employee category - Salaried > Weekly > Daily
// Secondary key : Employee gross pay
private static class EmployeeComparator implements Comparator
{
public int compare(Object one, Object two)
{
Employee uno = (Employee) one;
Employee dos = (Employee) two;
}
}
public abstract class Employee {
private String idNumber;
private double payRate;
//Accessor: Return the id number of employee
public String getidNumber()
{
return idNumber;
}
//Accessor: Return the payrate of the employee
public double getpayRate()
{
return payRate;
}
public String toString()
{
return getidNumber()+" "+getpayRate();
}
public abstract double grossPay();
}
【问题讨论】:
-
员工类别没有方法/字段。然后,您可以根据比较工资值来比较员工总工资和回报 -1、0 或 1。
-
比较器返回的是一个 int,以便可以在两个对象实例之间建立排序(小于、等于、大于)。在 cmets 中为 Comparator 提供的关键属性是 Employee 的哪些属性决定了排序关系? 您被告知先按员工类别排序,然后是总工资,但 Employee 没有“类别”属性,因此问题未完全指定。
标签: java