0

在散列/性能方面哪个更好作为映射可变或非可变的键

为什么会这样?

问候

4

3 回答 3

2

hashCode()如果对象的/equals()可以更改,请不要使用可变对象、句号。然后它会在错误的地方,并且Map可能会忘记它。

于 2013-11-08T06:26:11.690 回答
1

可变性对性能没有影响,只有 hashCode 和 equals 方法的实现会影响性能,因为散列只使用这些方法。

正如 chriylis 已经指出的那样,您不应该修改已经放置在 Map 中的键对象,因为哈希值发生了变化,并且 Map.get 无法再找到它们。

于 2013-11-08T06:29:44.487 回答
0

这些没有联系。如果您修改它(删除 - 修改 - 插入),则需要将对象重新插入到地图中。如果您修改密钥而不删除,您将无法引用它 - 即以正常方式删除或获取它。

于 2013-11-08T06:38:20.707 回答