相关疑难解决方法(0)

更改 HashSet / HashMap 内对象的 hashCode

我对 Java 比较陌生,对以下事情感到困惑:我通常ArrayList在设置内容之前向 an 添加对象。IE,

List<Bla> list = new ArrayList<>();
Bla bla = new Bla();
list.add(bla);
bla.setContent(); // content influences hashCode
Run Code Online (Sandbox Code Playgroud)

这种方法效果很好。我担心这种方法在与HashSets 或HashMaps一起使用时是否会给我带来麻烦。内部哈希表在添加对象时设置。如果setContent()在对象被添加到HashSetor HashMap(并且它的 hashCode 改变)之后被调用会发生什么?

添加/放入HashSets 或HashMaps之前,我应该完全设置(影响哈希码的)内容吗?通常是否建议在添加对象之前完成构建对象?

非常感谢您的见解。

java arraylist hashmap hashcode hashset

4
推荐指数
1
解决办法
946
查看次数

标签 统计

arraylist ×1

hashcode ×1

hashmap ×1

hashset ×1

java ×1