java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系

2020-11-25 00:24

阅读:641

标签:style   java   问题   c   时间   ar   

HashSet是采用HashMap来实现的;这个HashMapkey就是放进HashSet中的对象,value就是一个Object类型的对象

②当调用HashSetadd方法时,实际上是想HashMap中增加了一行(key-value对),该行的key就是往HashSet增加的那个对象,该行的value就是一个Object类型的常量。

HashMap底层采用数组来维护

 

④调用增加的那个对象的hashCode方法,来得到一个hashCode,然后根据该值来计算出一个数组的下标索引(计算出数组中的一个位置)

⑤将准备增加到map中的对象与该位置上的对象进行比较(equals方法),如果相同,那么就将该位置上的那个对象(Entry类型)的value值替换掉,否则沿着该Entry的链继续重复上述过程,如果链到最后仍然没有找到与对象相同的对象,,那么这个时候就会将该对象增加到数组中,将数组中该位置上的那个Entry对象链到该对象的后面。

⑥对于HashSetHashMap来说,这样做就是为了提高查找的效率,使得查找的时间不随着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


评论


亲,登录后才可以留言!