HashMap、HashSet、HashTable的区别

一.HashMap与HashSet的区别

HashMapHashSet
实现了 Map 接口实现 Set 接口
存储键值对仅存储对象
调用 put()向 map 中添加元素调用 add()方法向 Set 中添加元素

HashMap 使用键(Key)计算 hashcode     

HashSet 使用成员对象来计算 hashcode 值,对于两个对象来说 hashcode 可能相同,所以equals()方法用来判断对象的相等性

二.HashMap与HashTable的区别 

HashmapHashTable
线程安全性非线程安全线程安全
效率略低
是否支撑Null key 和 Null value支持不支持
初始化容量大小默认为16默认为11
每次扩容大小2n + 12n
底层数据结构链表散列(jdk1.8之后当链表长度大于阈值时转换为红黑树)链表散列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值