小编sca*_*ter的帖子

TreeSet 正在向 Set 添加重复值

我正在解决一个问题。我必须创建一个自定义 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)

java collections

5
推荐指数
1
解决办法
316
查看次数

标签 统计

collections ×1

java ×1