HashMap集合的底层原理

HashMap集合的底层原理
HashMap跟HahSet的底层原理是一模一样的,都是基于哈希表实现的。
实际上:原来学的Set系列集合的底层就是基于Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。

public HashSet(){
    map = new HashMap();
}

JDK8之前,哈希表=数组+链表;

JDK8开始,哈希表=数组+链表+红黑树

哈希表是一种增删改查数据,性能都较好的数据结构;

HashMap的键依赖hashCode方法和equals方法保证键的唯一

存储数据时hashCode()的作用,当hashMap中添加一个新的键值对时,HashMap会首先调用键的hashCode()方法来计算该键的哈希值,这个哈希码被用来确定该键值对在哈希表中的位置

如果该位置有其他的键值对,比较新的键值对与已有键的相等性时,就会使用equals()方法,如果新键与旧键相等,则更新该键对应的值;如果不相等,则将新键值对添加到位置的链表或红黑树中。

如果键存储的是自定义类型的对象,可以通过重新hashCode和equals方法,这样可以保证多个对象内容一样时,HashMap集合就能认为是重复的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值