HashMap数据结构

HashMap详解:
优点:
    寻址容易,插入删除容易(链表是查找困难,插入删除容易)
hashMap的数据结构:
    哈希表:数组+链表
哈希表生成过程:
    hashmap通过key的hashcode来计算hash值(将关键字通过hash函数转换成一个hash值),然后将该整数对数组长度进行取余运算,取余的结果就是数组的下标,将value存储在以数字为下标的无值数组空间里(有值此时将产生冲突)
冲突解决方法:
开放地址法:
    当关键字key的哈希地址出现冲突时,以p为基础,产生另外一个哈希地址p1,如果p1再产生冲突,产生另一个hash表p2
再哈希法:
    这种方法是同时构造多个不同的哈希函数
链地址法:
    将所有产生冲突的元素生成一个同义词连的单链表,将冲突关键字以链表的形式放在已有冲突字段后面,查找时候通过比较冲突字段进行确认
hashcode详解:
    每个对象都有hashcode,hashcode相同,两个对象不一定相同
equals方法和hashcode比较:
    比较两个数是否相等,先比较hashcode,在通过equals比较
    equals方法重写的话,建议也一起重写hashcode方法

猜你喜欢

转载自blog.csdn.net/yjjzz520/article/details/80579256