HashMap和HashTable的不同点是什么
HashMap和HashTable的不同点是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
专注于为中小企业提供成都网站建设、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业汤原免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
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()方法。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
本文题目:HashMap和HashTable的不同点是什么
分享网址:http://scyanting.com/article/ijhigi.html