【小批量溯源码】【上海招聘系统源码】【游戏编程大师源码】java hashtable源码

2024-11-29 23:09:00 来源:python舆情监控源码 分类:娱乐

1.Java中HashMap和Hashtable及HashSet的区别

java hashtable源码

Java中HashMap和Hashtable及HashSet的区别

       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.HashTable不允许null值(key和value都不可以),小批量溯源码HashMap允许null值(key和value都可以,只容许有一个null值的key,可以有多个null值的value)。

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

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

       ä»¥ä¸Šåªæ˜¯è¡¨é¢çš„不同,它们的实现也有很大的不同。

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

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

        int hash = key.hashCode();

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

       è€ŒHashMap重新计算hash值,而且用与代替求模:

       int hash = hash(k);

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

       static int hash(Object x) {

       ã€€ã€€ int h = x.hashCode();

       ã€€ã€€ h += ~(h << 9);

       ã€€ã€€ h ^= (h >>> );

       ã€€ã€€ h += (h << 4);

       ã€€ã€€ h ^= (h >>> );

       ã€€ã€€ return h;

       }

       static int indexFor(int h, int length) {

       ã€€ã€€ return h & (length-1);

       }

       ä»¥ä¸Šåªæ˜¯ä¸€äº›æ¯”较突出的区别,当然他们的实现上还是有很多不同的,比如

       HashMap对null的操作。

更多资讯请点击:娱乐

热门资讯

css投影源码

2024-11-29 23:042292人浏览

cavas 游戏源码_canvas小游戏代码

2024-11-29 22:131145人浏览

delphi病毒源码_delphi源码下载

2024-11-29 22:041220人浏览

恶搞整人源码_恶搞整人代码

2024-11-29 21:331548人浏览

法意科技源码_法意科技怎么样

2024-11-29 21:211287人浏览

delphi病毒源码_delphi源码下载

2024-11-29 20:471892人浏览

推荐资讯

人头检测 源码_人头检测代码

1.opencv检测由人头头发),应该怎么实现呢?2.lol挂机源代码要那种可以打得过人机的按键精灵代码,求大神帮助。opencv检测由人头头发),应该怎么实现呢? 最简单的办法: 1. 滤波

libuuid源码安装

1.使用Linux文件恢复工具2.PostGIS入门篇 一 PostGIS安装使用Linux文件恢复工具 Linux 系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令所带来

cc源码攻击

1.免费版DDOS/CC平台测压源码免费版DDOS2.哪位大哥,知道.cc文件怎么3.phpwind和discuz哪个好4.软件sp和cc是什么意思免费版DDOS/CC平台测压源码免费