关注
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
相关推荐
点赞 评论 收藏
分享
查看18道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
10920次浏览 148人参与
# 第一次面试 #
1072786次浏览 13736人参与
# 牛客AI体验站 #
17245次浏览 297人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
329211次浏览 2127人参与
# 你喜欢工作还是上学 #
89946次浏览 888人参与
# 被AI治愈的瞬间 #
91166次浏览 690人参与
# 有必要和同事成为好朋友吗? #
1880次浏览 34人参与
# 虾皮求职进展汇总 #
378419次浏览 2795人参与
# 百度求职进展汇总 #
667809次浏览 6293人参与
# 招聘要求与实际实习内容不符怎么办 #
169588次浏览 926人参与
# 如果不上班,你会去做什么 #
29517次浏览 466人参与
# 非技术岗薪资爆料 #
491534次浏览 3047人参与
# 你找工作的时候用AI吗? #
173865次浏览 893人参与
# 产品薪资爆料 #
159028次浏览 855人参与
# 你觉得什么岗位会被AI替代 #
41772次浏览 283人参与
# 考研失败就一定是坏事吗? #
222617次浏览 1543人参与
# 国企vs私企,你更想去? #
320199次浏览 2530人参与
# 我的求职精神状态 #
431976次浏览 3082人参与
# 秋招想进国企该如何准备 #
127619次浏览 620人参与
# 卷__卷不过你们,只能卷__了 #
42415次浏览 669人参与
