在散列/性能方面哪个更好,因为它是映射可变或不可变的关键
为什么会这样?
此致
答案 0 :(得分:2)
如果对象的hashCode()
/ equals()
可以更改,请不要使用可变对象period。它会在错误的地方,Map
可能会失去它的踪迹。
答案 1 :(得分:1)
可变性对性能没有影响,只有hashCode和equals方法的实现可能会影响性能,因为散列只使用这些方法。
正如chriylis已经指出的那样,你不应该修改已放置在Map中的关键对象,因为哈希值会改变,而Map.get也无法再找到它们。
答案 2 :(得分:0)
这些没有连接。如果修改了对象,则需要将对象重新插入到地图中(删除 - 修改 - 插入)。如果您修改了一个没有删除的密钥,您将无法引用它 - 即以正常方式删除或获取密钥。