我對Java比較陌生,對以下事情感到困惑:我通常在設置其內容之前將對象添加到ArrayList
。即,在HashSet/HashMap中改變對象的hashCode
List<Bla> list = new ArrayList<>();
Bla bla = new Bla();
list.add(bla);
bla.setContent(); // content influences hashCode
這種方法很好用。我擔心這種方法在與HashSet
s或HashMap
s一起使用時是否會給我帶來麻煩。內部哈希表在添加對象時設置。將對象添加到HashSet
或HashMap
(及其hashCode更改)後調用setContent()
會發生什麼情況?
我應該完全設置(的hashCode影響)添加/投入HashSet
S或HashMap
小號之前內容?通常建議在添加對象之前完成構建對象?
非常感謝您的見解。
如果您可以使用映射 map = new HashMap <>()',那麼您將使用字符串標識符作爲映射鍵,即使這些值隨後發生更改,也不應該有問題。 –