在散列/性能方面哪个更好作为映射可变或非可变的键
为什么会这样?
问候
hashCode()
如果对象的/equals()
可以更改,请不要使用可变对象、句号。然后它会在错误的地方,并且Map
可能会忘记它。
可变性对性能没有影响,只有 hashCode 和 equals 方法的实现会影响性能,因为散列只使用这些方法。
正如 chriylis 已经指出的那样,您不应该修改已经放置在 Map 中的键对象,因为哈希值发生了变化,并且 Map.get 无法再找到它们。
这些没有联系。如果您修改它(删除 - 修改 - 插入),则需要将对象重新插入到地图中。如果您修改密钥而不删除,您将无法引用它 - 即以正常方式删除或获取它。