我是一个相对新手的Java开发者,下面的问题让我很疑惑:在设置内容之前,通常我会先将对象添加到一个ArrayList
中。
List<Bla> list = new ArrayList<>();
Bla bla = new Bla();
list.add(bla);
bla.setContent(); // content influences hashCode
这种方法非常有效。我担心在与
HashSet
或HashMap
一起使用时,这种方法会给我带来麻烦。内部哈希表在添加对象时设置。如果在将对象添加到HashSet
或HashMap
之后调用setContent()
(并且其hashCode更改),会发生什么?我应该在将对象添加/放入
HashSet
或HashMap
之前完全设置(影响hashCode的)内容吗?通常建议在添加对象之前完成构建吗?非常感谢您的见解。
Map<String, Bla> map = new HashMap<>()
,其中您将使用字符串标识符作为映射键,则即使值在之后更改,您也不应该有问题。 - Mick Mnemonic