gpt4 book ai didi

java - 如何实现比较器

转载 作者:行者123 更新时间:2023-12-01 14:27:11 26 4
gpt4 key购买 nike

我得到了下面的代码作为家庭作业。我被要求为员工对象实现比较器。比较方法返回一个 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();

}

最佳答案

我建议查看this link .

自定义比较器的目标是获取两个对象并确定它们之间的关系。将其视为排序问题。假设我有两个袋子,里面有红色和蓝色的弹珠。如果我想根据蓝色弹珠来比较袋子,这就像询问哪个袋子里的蓝色弹珠多/少一样。

比较函数的返回值确定哪个对象的值高于另一个对象。让ret是两个对象比较后的值。

  • ret > 0表示左侧物体的值(value)高于右侧物体
  • ret < 0表示右侧物体的值(value)高于左侧
  • ret == 0意味着两个对象的值相同

希望这有帮助。

编辑:

如果您不允许或无法修改 Employee 类,请在第一组代码中的比较函数中进行比较。例如,如果您想比较两个整数 int aint b ,你会这样做:

a.compareTo(b)

Integer.compare(a, b)

  • 如果a > b :任一方法都会返回大于 0 的值
  • 如果a < b :任一方法都会返回小于 0 的值
  • 如果a == b :任一方法都会返回 0

只需将这个想法应用到您的代码中即可

关于java - 如何实现比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com