java中的容器

1.HashMap的内部结构#1
1.1实现了基于哈希表的Map接口
允许使用null键(值允许一个)和null值;
不保证映射的顺序,即无序性
HashTable的不同在于不允许使用null而且是同步的

1.2影响HashMap性能的两个参数:初始容量和加载因子默认(16*0.75=12)阈值为12
容量是HashMap中桶数量,初始容量是创建时的容量。
加载因子是HashMap可以达到多满的尺度,当表中数据超过加载因子与当前容量的乘积时(阈值),HashMap就会进行rehash操作,对其进行扩容,调用其resize()方法,扩容为2次幂
加载因子在0.75时,达到一个平衡(即更新操作与查询操作的速度保持平衡)

1.3HashMap是数组+链表+红黑树(1.8以后)结构,在存入新的键值对时,首先调用其HashCode方法,传入key来计算哈希码,比较与原键值对的哈希码,若相等则发生哈希冲突,调用equals方法来比较两个对象,相同则不存入,不同则把当前传进来的键值对生成一个新的节点保存在链表的尾部,若链表的长度大于8 就会调用treeifyBin()方法,将链表结构转化为红黑树结构。
未完TODO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值