【脸部相似度源码android】【主买主卖指标源码】【商城小程序源码制定】java hashtable源码

2024-11-15 07:04:21 来源:拼图程序源码 分类:综合

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都不可以),脸部相似度源码androidHashMap允许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的操作。

更多资讯请点击:综合

推荐资讯

秘魯南部礦場大火 初估至少27名礦工喪命

秘魯一座金礦傳出嚴重火警,造成至少27人喪命,這是該國20多年來最嚴重的一次礦災。事件發生在秘魯南部康德蘇約斯省,當地時間6日凌晨,一座偏遠礦坑內的隧道因為電線短路而發生火災,導致許多礦工逃生不及、命

升值行情看漲 人民幣大缺貨|天下雜誌

熱錢流竄亞洲,全都在賭人民幣和亞洲貨幣升值。人民幣到底什麼時候升值?胡錦濤五月訪美,會拿人民幣升值當伴手禮嗎?專家指出,人民幣會一路升值到二○一五年。

搶復甦財 先過這三關|天下雜誌

二○一○將是一個轉捩點,提早佈局者將能在復甦一刻獲利,在這關鍵準備期,用三個問題,檢視你的企業準備好了沒?