关注
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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 今年春招是金一银二嘛? #
21029次浏览 218人参与
# 总结:哪家公司面试体验感最好 #
79237次浏览 444人参与
# 没关系,至少我的__很曼妙 #
9043次浏览 144人参与
# 你是怎么和mt相处的? #
89818次浏览 459人参与
# 赚钱的意义在这一刻具象化 #
9372次浏览 197人参与
# 来聊聊你目前的求职进展 #
717656次浏览 6986人参与
# 比亚迪工作体验 #
80121次浏览 293人参与
# AI求职实录 #
12952次浏览 337人参与
# 快手年终开大包 #
3015次浏览 46人参与
# 抛开难度不谈,你最想去哪家公司? #
11531次浏览 196人参与
# 考研人,我有话说 #
163503次浏览 1240人参与
# 1月小结:你过的开心吗? #
4011次浏览 78人参与
# 为什么有人零实习也能进大厂? #
10927次浏览 209人参与
# 你的第一家实习公司是什么档次? #
9485次浏览 115人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
13602次浏览 339人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
7087次浏览 218人参与
# 牛客吐槽大会 #
7884次浏览 127人参与
# 你的landing期是如何度过的? #
13505次浏览 260人参与
# 实习最想跑路的瞬间 #
112476次浏览 690人参与
# 除了Java,最推荐学什么技术? #
11729次浏览 227人参与

查看18道真题和解析