关注
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
相关推荐
12-03 22:15
山东交通学院 Java 点赞 评论 收藏
分享
12-17 10:20
河北工业大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
146718次浏览 2509人参与
# 秋招落幕,你是He or Be #
3076次浏览 75人参与
# 应届生进小公司有什么影响吗 #
109031次浏览 1116人参与
# 比亚迪工作体验 #
70046次浏览 254人参与
# 你面试体验感最差/最好的公司 #
2919次浏览 56人参与
# 工作中听到最受打击的一句话 #
2444次浏览 61人参与
# 大厂VS公务员你怎么选 #
71013次浏览 659人参与
# 重来一次,你会对开始求职的自己说 #
2885次浏览 71人参与
# 一人说一个提前实习的好处 #
3232次浏览 69人参与
# 团建是“福利”还是是 “渡劫” #
3936次浏览 110人参与
# 实习没事做是福还是祸? #
8105次浏览 135人参与
# 如何排解工作中的焦虑 #
243644次浏览 2240人参与
# 从顶到拉给所有面过的公司评分 #
144779次浏览 518人参与
# 今年你最想重开的一场面试是? #
1350次浏览 24人参与
# 你小心翼翼的闯过多大的祸? #
6826次浏览 109人参与
# 联影求职进展汇总 #
123810次浏览 781人参与
# OPPO求职进展汇总 #
755864次浏览 5390人参与
# 互联网公司爆料 #
158551次浏览 724人参与
# 产品实习,你更倾向大公司or小公司 #
189073次浏览 2053人参与
# 秋招结束之后的日子 #
113892次浏览 1038人参与
