我正在解决一个问题。我必须创建一个自定义 Employee 对象的 TreeSet,其中数据应按薪水排序,但员工 ID 需要是唯一的。我知道 equals() 和 hashCode() 方法不适用于 TreeSet,我们需要在compareTo() 方法中编写对象相等或不相等的逻辑。我正在检查两个员工 ID 是否相等,然后返回 0,意味着不应添加对象。
但输出并没有达到预期,因为具有相同员工 ID 的员工也被添加。我尝试对此进行调试,但没有得到正确的答案。
这是代码。
public class Employee implements Comparable<Employee>{
int empId;
String empName;
double salary;
public Employee() {
super();
}
public Employee(int empId, String empName, double salary) {
super();
this.empId = empId;
this.empName = empName;
this.salary = salary;
}
@Override
public int hashCode() {
return empId;
}
@Override
public boolean equals(Object o) {
if(this == o) return true;
if(o == null || this.getClass() != o.getClass()) …Run Code Online (Sandbox Code Playgroud)