HashSet 与 HashMap
Posted chafanbusi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashSet 与 HashMap相关的知识,希望对你有一定的参考价值。
hashcode() 与 equals() 应一起重写,在HashMap 会先调用hash(key.hashcode()) 找到对应的entry数组位置 (一般初始是16,2^x,rehash后会翻倍),再在这个entry链表上equals判断是否存在相同元素。
所以当重写equals时没保证hashcode出的值的一致性,会导致hash到不同的数组位置 插入重复的元素。
※String类的hashcode是通过各个位置的char的ascii码计算Σx*31^(len-i)得到的※
以上是关于HashSet 与 HashMap的主要内容,如果未能解决你的问题,请参考以下文章