HashMap和ConcurrentHashMap

本文探讨了Java中三种重要的映射数据结构:HashMap、HashTable和ConcurrentHashMap。HashMap提供了高效且非同步的查找操作,适合单线程环境。HashTable虽然保证了线程安全,但性能较低。而ConcurrentHashMap则在多线程环境下提供了高性能的并发操作,是线程安全的选择。
摘要由CSDN通过智能技术生成

HashMap

在不考虑哈希冲突的情况下,HashMap的增加,删除,查找元素的时间复杂度都为O(1)。效率十分的高。
哈希表的主干是数组。
在增加时把当前的元素时把当前元素的关键字通过哈希函数映射到数组中的某个位置,查找时通过哈希函数确定下标,再直接通过下标获取数组指定元素。
当通过哈希函数计算一个并得到一个元素的下标,但是发现该下标对应位置已经被别的元素占据,这就是所谓的哈希冲突,也叫哈希碰撞。
哈希冲突的解决方法主要有:
1.开放地址法(发生冲突,继续寻找下一块未被占据的地址)
2.再散列函数法。
3.链地址法。
HashMap采用链地址法(数组加链表)解决哈希冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值