前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HashMap和HashTable的不同点

HashMap和HashTable的不同点

作者头像
IT技术小咖
发布2019-11-24 18:01:58
5350
发布2019-11-24 18:01:58
举报
文章被收录于专栏:码上修行

1 继承和实现方式不同

HashMap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。 Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。

2 线程安全不同

Hashtable它是线程安全的,支持多线程。 而HashMap它不是线程安全的

3 对null值的处理不同

HashMap的key、value都可以为null。 Hashtable的key、value都不可以为null

4 支持的遍历种类不同

HashMap只支持Iterator(迭代器)遍历。 而Hashtable支持Iterator(迭代器)和Enumeration(枚举器)两种方式遍历。

5 通过Iterator迭代器遍历时,遍历的顺序不同

HashMap是“从前向后”的遍历数组;再对数组具体某一项对应的链表,从表头开始进行遍历。 Hashtable是“从后往前”的遍历数组;再对数组具体某一项对应的链表,从表头开始进行遍历。

6 容量的初始值和增加方式都不一样

HashMap默认的容量大小是16;增加容量时,每次将容量变为“原始容量x2”。 Hashtable默认的容量大小是11;增加容量时,每次将容量变为“原始容量x2 + 1”。

7 添加key-value时的hash值算法不同

HashMap添加元素时,是使用自定义的哈希算法。 Hashtable没有自定义哈希算法,而直接采用的key的hashCode()。

8 部分API不同

Hashtable支持contains(Objectvalue)方法,而且重写了toString()方法; 而HashMap不支持contains(Objectvalue)方法,没有重写toString()方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码上修行 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档