欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

hashmap和hashtable的區別 hashmap和hashtable的區別底層實現

以java為例 , 其ihashmap和hashtable的區別如下:

1、歷史原因不同 。Hashtable是基于陳舊的Dictionary類的 , HashMap是Java 1.2引進的Map接口的一個實現 。
2、也許最重要的不同是Hashtable的方法是同步的 , 而HashMap的方法不是 。這就意味著 , 雖然你可以不用采取任何特殊的行為就可以在一個多線程的應用程序中用一個Hashtable , 但你必須同樣地為一個HashMap提供外同步 。一個方便的方法就是利用Collections類的靜態的synchronizedMap()方法 , 它創建一個線程安全的Map對象 , 并把它作為一個封裝的對象來返回 。這個對象的方法可以讓你同步訪問潛在的HashMap 。這么做的結果就是當你不需要同步時 , 你不能切斷Hashtable中的同步(比如在一個單線程的應用程序中) , 而且同步增加了很多處理費用 。【hashmap和hashtable的區別 hashmap和hashtable的區別底層實現】
3、只有HashMap可以讓你將空值作為一個表的條目的key或value 。HashMap中只有一條記錄可以是一個空的key , 但任意數量的條目可以是空的value 。這就是說 , 如果在表中沒有發現搜索鍵 , 或者如果發現了搜索鍵 , 但它是一個空的值 , 那么get()將返回null 。如果有必要 , 用containKey()方法來區別這兩種情況 。

    相關經驗推薦