hashcode方法,equals方法,Hashset、HashMap之间的关系?
1.Hashset是采用HashMap来实现的。
2.这个HashMap的key值就是放进Hashset中对象,value就是一个Object类型的对象。
3.当调用Hashset的add方法时,实际上是向HashMap中增加了一行(key-value对),该行的key就是向Hashset中添加的那个对象,该行的value就是一个Object类型的常量。
4.HashMap底层采用数组来维护。
5.当调用HashMap的put方法的时候,会调用增加那个对象的hashcode方法,得到一个hashcode值,然后根据该值来计算出一个数组的下标索引。
6.将准备添加到Map中的对象和该位置上的对象进行equals方法比较。如果相同,那么就将该位置上的那个对象(Entry类型)的value值替换,否则沿着该Entry的链继续重复上述过程,如果到链最后仍然没有找到与此对象相同的对象,那么这个时候就会将该对象增加到数组中,将数组中该位置上的那个Entry对象链到该对象的后面。
7.对于Hashset、HashMap来说,这样做就是为了提高查找效率,使得查找时间不随着Set或者Map的大小而改变。
本文深入探讨了哈希集和哈希映射的内部实现原理,解释了它们如何利用哈希码进行高效的数据存储与检索。详细介绍了哈希集的实现方式,包括其与哈希映射的密切联系,以及哈希映射如何通过哈希码定位键值对。同时阐述了哈希码的生成与冲突解决策略,旨在提升查找效率。
&spm=1001.2101.3001.5002&articleId=50414853&d=1&t=3&u=316a57102ebe420ca43f346a0b2e465a)

被折叠的 条评论
为什么被折叠?



