hashtable底层(HashTable和HashMap的区别)

:暂无数据 2026-10-14 03:30:02 :0

hashtable底层(HashTable和HashMap的区别)

大家好,关于hashtable底层很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于HashTable和HashMap的区别的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

HashTable和HashMap的区别

1.Hashtable是字典的一个子类,HashMap的是Map接口的实现;点击看详细2.Hashtable方法是同步的,而HashMap的方法,通过默认的非同步的。点击看详细3.在HashMap中,null作为一个键,以便只有一个键;可以有一个或多个对应于该值的关键为空。当get()方法返回一个空值,它可以表示HashMap中不是关键,它可以说是对应于该值的键为空。因此,在HashMap中不受get()方法,以确定是否存在一个关键的HashMap,但应的containsKey()方法来确定。 4.点击看详细不同的底层实现机制,存取速度快于散列映射哈希表,因为它并不需要同步测试被推荐,而不是哈希散列映射在非多线程环境。

linkedhashset,hashtable底层是由什么实现的,hashtable是不是同步的

hastTable和hashMap的区别:

(1)Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。

(2)这个不同即是最重要的一点:Hashtable中的方法是同步的,而HashMap方法(在缺省情况下)是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:

Map Collections.synchronizedMap(Map m)

这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。

(3)只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。

其它的一些资料:

  1. HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。(最主要的区别)

  2. 2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以,只容许有一个null值的key,可以有多个null值的value)。

  3. 3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

  4. 4.HashTable使用Enumeration,HashMap使用Iterator。

  5. 以上只是表面的不同,它们的实现也有很大的不同。

  6. 5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

  7. 6.哈希值的使用不同,HashTable直接使用对象的hashCode,代码是这样的:

  8. int hash = key.hashCode();

  9. int index = (hash  0x7FFFFFFF) % tab.length;

  10. 而HashMap重新计算hash值,而且用与代替求模:

  11. int hash = hash(k);

  12. int i = indexFor(hash, table.length);

static int hash(Object x) {

int h = x.hashCode();

h += ~(h 《《 9);

h ^= (h 》》》 14);

h += (h 《《 4);

h ^= (h 》》》 10);

return h;

}

static int indexFor(int h, int length) {

return h  (length-1);

}

以上只是一些比较突出的区别,当然他们的实现上还是有很多不同的,比如

HashMap对null的操作。

如果你还想了解更多这方面的信息,记得收藏关注本站。

hashtable底层(HashTable和HashMap的区别)

本文编辑:admin

更多文章:


issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)

issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)

各位老铁们,大家好,今天由我来为大家分享issued retroactively,以及FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站

2026年10月15日 10:30

f发音是什么?printf的返回值是什么

f发音是什么?printf的返回值是什么

大家好,关于f很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于f发音是什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月15日 10:10

begin和start的区别(start与begin的区别)

begin和start的区别(start与begin的区别)

其实begin和start的区别的问题并不复杂,但是又很多的朋友都不太了解start与begin的区别,因此呢,今天小编就来为大家分享begin和start的区别的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月15日 09:20

vant官网中文(范特365 是韩国化妆品VANT36.5吗)

vant官网中文(范特365 是韩国化妆品VANT36.5吗)

大家好,今天小编来为大家解答以下的问题,关于vant官网中文,范特365 是韩国化妆品VANT36.5吗这个很多人还不知道,现在让我们一起来看看吧!

2026年10月15日 09:10

特殊字符是指什么?正则表达式中一些特殊字符的用法

特殊字符是指什么?正则表达式中一些特殊字符的用法

大家好,特殊字符相信很多的网友都不是很明白,包括特殊字符是指什么也是一样,不过没有关系,接下来就来为大家分享关于特殊字符和特殊字符是指什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

2026年10月15日 08:10

特殊符号网名大全花样符号(特殊符号昵称有哪些)

特殊符号网名大全花样符号(特殊符号昵称有哪些)

本篇文章给大家谈谈特殊符号网名大全花样符号,以及特殊符号昵称有哪些对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月15日 07:30

prison break(越狱(prison break)到底是在讲个什么)

prison break(越狱(prison break)到底是在讲个什么)

各位老铁们好,相信很多人对prison break都不是特别的了解,因此呢,今天就来为大家分享下关于prison break以及越狱(prison break)到底是在讲个什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2026年10月15日 06:50

c程序设计第五版教学视频(求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!)

c程序设计第五版教学视频(求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!)

各位老铁们,大家好,今天由我来为大家分享c程序设计第五版教学视频,以及求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动

2026年10月15日 06:40

电脑教程入门(电脑初学入门)

电脑教程入门(电脑初学入门)

本篇文章给大家谈谈电脑教程入门,以及电脑初学入门对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月15日 06:20

十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)

十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)

“十六进制转二进制表”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)!

2026年10月15日 06:10

最近更新

issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)
2026-10-15 10:30:03 浏览:0
如何制作短视频(短视频怎么制作)
2026-10-15 10:20:11 浏览:0
f发音是什么?printf的返回值是什么
2026-10-15 10:10:03 浏览:0
免费网站做seo(个人网站如何做SEO)
2026-10-15 09:30:11 浏览:0
热门文章

标签列表