为什么要重写hashCode与equals()方法?
为什么要重写equals()方法? :smile:
在比较数值类型的变量或者null时,我们常用==来进行比较两者是否相同。这样比较的背后逻辑是比较两者的内存地址,如果两者指向的内存地址相同,显
我来确认一下(这块我确实不懂)
前面的字符权重较大是因为拆开括号后乘的31比较多,对整体哈希值的影响就大,对不对
另外,我认为这不能节约空间。实际使用String当作键的时候,大概率前缀的差异较大,这样会导致数据离散,对于数组这种占用连续的空间的数据结构,这样会看起来密度小,浪费的空间其实大了,实在太多的数据也不会用HashMap实现。我觉得它实际是为了避免太多哈希冲突带来的负面影响
然后我还是不理解为什么全是1了就会数据离散,而且照你前面说的,数据离散不是缺点吗