java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系
2020-11-25 00:24
标签:style java 问题 c 时间 ar ①HashSet是采用HashMap来实现的;这个HashMap的key就是放进HashSet中的对象,value就是一个Object类型的对象 ②当调用HashSet的add方法时,实际上是想HashMap中增加了一行(key-value对),该行的key就是往HashSet增加的那个对象,该行的value就是一个Object类型的常量。 ③HashMap底层采用数组来维护 ④调用增加的那个对象的hashCode方法,来得到一个hashCode,然后根据该值来计算出一个数组的下标索引(计算出数组中的一个位置) ⑤将准备增加到map中的对象与该位置上的对象进行比较(equals方法),如果相同,那么就将该位置上的那个对象(Entry类型)的value值替换掉,否则沿着该Entry的链继续重复上述过程,如果链到最后仍然没有找到与对象相同的对象,,那么这个时候就会将该对象增加到数组中,将数组中该位置上的那个Entry对象链到该对象的后面。 ⑥对于HashSet、HashMap来说,这样做就是为了提高查找的效率,使得查找的时间不随着Set或者Map的长度增加而增加。 java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系,搜素材,soscw.com java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系 标签:style java 问题 c 时间 ar 原文地址:http://blog.csdn.net/sundenskyqq/article/details/24814455
文章标题:java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系
文章链接:http://soscw.com/index.php/essay/22501.html