关注
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
相关推荐
09-16 16:47
门头沟学院 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
17343次浏览 158人参与
# 机械人春招想让哪家公司来捞你? #
357124次浏览 3108人参与
# 为了求职,我做过的疯狂伪装 #
11741次浏览 209人参与
# 晒晒你的中秋福利 #
14980次浏览 96人参与
# 职场破冰,你们都聊什么? #
6640次浏览 67人参与
# bilibili求职进展汇总 #
87394次浏览 796人参与
# 工作压力大怎么缓解 #
104964次浏览 1050人参与
# 大家实习每天都在干啥 #
88854次浏览 518人参与
# 广联达求职进展汇总 #
10857次浏览 50人参与
# 机械人怎么评价今年的华为 #
208757次浏览 1524人参与
# 秋招OC许愿 #
346064次浏览 2525人参与
# 你的公司给实习生发中秋礼物吗 #
1522次浏览 28人参与
# 你面试被问到过哪些不会的问题? #
20545次浏览 788人参与
# 聊聊这家公司值得去吗 #
556217次浏览 3694人参与
# 电网笔面经互助 #
46569次浏览 431人参与
# 宣讲会你有哪些意向不到的收获 #
1098次浏览 20人参与
# 秋招的嫡长offer #
28473次浏览 270人参与
# 你觉得早上几点上班合适? #
82414次浏览 330人参与
# 秋招报数:你投了多少家公司? #
28134次浏览 290人参与
# 实习要如何选择和准备? #
114664次浏览 1436人参与