Sol*_*ace 0 java collections dictionary set immutability
我在这里读到:
不可变对象是良好的Map键和Set元素,因为这些通常在创建后不会更改.
因为这些集合依赖于散列,所以对它们有贡献的字段hashCode应该是不可变的.
当HashMap想要存储键值时,它使用它的hashCode key并为该对计算出一个位置,
相同的技术将用于元素检索(例如:contains,get等).现在假设hashCode元素检索产生的值与添加元素时产生的值不同?我们能够正确找到元素吗?没有.
HashSet与a没什么不同HashMap.
这是关于拥有能够正确比较对象的方法hashCode和equals方法,不变性使得更容易推断这些方法的正确性.