关注
1.安全性
Hashtable是线程安全,HashMap是非线程安全。HashMap的性能会高于Hashtable,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合(Collections.synchronizedMap()实现原理是Collections定义了一个SynchronizedMap的内部类,这个类实现了Map接口,在调用方法时使用synchronized来保证线程同步
2.是否可以使用null作为key
HashMap可以使用null作为key,不过建议还是尽量避免这样使用。HashMap以null作为key时,总是存储在table数组的第一个节点上。而Hashtable则不允许null作为key
3.继承了什么,实现了什么
HashMap继承了AbstractMap,HashTable继承Dictionary抽象类,两者均实现Map接口
4.默认容量及如何扩容
HashMap的初始容量为16,Hashtable初始容量为11,两者的填充因子默认都是0.75。HashMap扩容时是当前容量翻倍即:capacity 2,Hashtable扩容时是容量翻倍+1即:capacity (2+1)
6.底层实现
HashMap和Hashtable的底层实现都是数组+链表结构实现
7.计算hash的方法不同
Hashtable计算hash是直接使用key的hashcode对table数组的长度直接进行取模HashMap计算hash对key的hashcode进行了二次hash,以获得更好的散列值,然后对table数组长度取模
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
10607次浏览 260人参与
# 软开人,秋招你打算投哪些公司呢 #
100116次浏览 939人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
20545次浏览 176人参与
# 实习,不懂就问 #
21921次浏览 330人参与
# 你觉得现在还能进互联网吗? #
3484次浏览 85人参与
# 如何准备秋招 #
7256次浏览 124人参与
# 每个月的工资都是怎么分配的? #
10763次浏览 218人参与
# 秋招什么时候开投比较合适? #
4506次浏览 88人参与
# 技术岗笔试题求解 #
75182次浏览 974人参与
# 预测一下26届秋招形势 #
17066次浏览 174人参与
# 打工人的精神状态 #
52815次浏览 956人参与
# 机械实习一天多少钱合适? #
28474次浏览 176人参与
# 高考出分的那一天,我__ #
12425次浏览 192人参与
# 牛客十周岁生日快乐 #
144642次浏览 1609人参与
# 安利/避雷我的专业 #
75715次浏览 522人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
111789次浏览 788人参与
# 你们公司几号发工资 #
18596次浏览 115人参与
# 来聊聊你认为的薪资天花板是哪家? #
30566次浏览 174人参与
# 设计人如何选offer #
116667次浏览 728人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61885次浏览 493人参与
# 聊聊你的职场新体验 #
160930次浏览 1389人参与