如何解决Java HashSet 通过其哈希码删除项目
我有一个带有自己的 hashCode() 方法的类。我正在将这个类添加到 HashSet。如何在不知道对象本身的情况下通过其 hashCode 删除项目?
例如,如果我有以下代码
HashSet<Data> set = new HashSet<>();
set.add(new Data(10,5));
...
class Data {
public int importantVal;
public int notImportantVal;
//... constructor ...
@Override
public int hashCode() {
return importantVal;
}
}
而且我知道 Data 对象的 importantVal
,但不知道对象本身。我将如何删除它? set.remove(10)
不起作用。
我能想到的最佳解决方案是也覆盖 equals()
以在 importantVal
相同时返回,然后执行 set.remove(new Data(10,anyPlaceholderValue))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。