码迷,mamicode.com
首页 > 其他好文 > 详细

HashSet 与 HashMap

时间:2019-03-29 14:46:11      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:不同的   char   sigma   重写   equal   不同   nbsp   als   判断   

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

标签:不同的   char   sigma   重写   equal   不同   nbsp   als   判断   

原文地址:https://www.cnblogs.com/chafanbusi/p/10620958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!