0

我正在使用 LinkedHashSet 删除重复的条目。但是对于以下自定义模型,Set 仍然保留重复的条目。请帮我找出错误。覆盖equals方法有什么问题吗?对于您的类型信息,我仅在电话、类型和状态相同时将两个节点视为相等。

public class BlockNode { 
    public int id;
    public int type;
    public int status;
    public String phone;
    public String date;
    public String content;

    @Override
    public boolean equals(Object o) {
        return this.toString().equals(((BlockNode)o).toString());
    }

    @Override
    public String toString() {
        return "number:" + phone + " type:" + type + " status:" + status + "\n"; 
    }
}
4

2 回答 2

7

您还必须重写方法hashCode

@Override
public int hashCode() {
    return toString().hashCode(); 
}
于 2014-07-05T08:50:44.630 回答
1

请记住hashCode在您覆盖时覆盖equals

于 2014-07-05T08:50:52.303 回答