关注
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
相关推荐
查看6道真题和解析 点赞 评论 收藏
分享
查看10道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的实习产出是真实的还是包装的? #
36402次浏览 434人参与
# 网申一定要掌握的小技巧 #
20505次浏览 86人参与
# 厦门银行科技岗值不值得投 #
15969次浏览 359人参与
# 一人一道大厂面试题 #
125020次浏览 1302人参与
# 面试紧张时你会有什么表现? #
34564次浏览 218人参与
# 学历VS实习,哪个更重要? #
2890次浏览 70人参与
# 机械人求职现状 #
39832次浏览 321人参与
# 分享一个让你热爱工作的瞬间 #
67329次浏览 500人参与
# 你的实习什么时候入职 #
367225次浏览 2361人参与
# uu们,春招你还来吗? #
65120次浏览 798人参与
# 面试中,你被问过哪些奇葩问题? #
97290次浏览 1318人参与
# 发工资后,你做的第一件事是什么 #
99720次浏览 319人参与
# 牛油的搬砖plog #
188543次浏览 1253人参与
# 面试被问到不会的问题,你怎么应对? #
27276次浏览 699人参与
# 你都用vibe coding做过什么? #
23474次浏览 886人参与
# 90后北漂现状 #
36128次浏览 213人参与
# 工作上你捅过哪些篓子? #
68551次浏览 317人参与
# 一人分享一道面试手撕题 #
111196次浏览 2619人参与
# 关于春招你都做了哪些准备? #
145115次浏览 767人参与
# 你觉得大几开始实习最合适? #
31488次浏览 340人参与
# 你见过哪些招聘隐形歧视? #
26758次浏览 217人参与
