首頁 > Java > java教程 > 主體

java中HashMap和Hashtable之間的差異是什麼

青灯夜游
發布: 2019-03-21 14:49:17
原創
4380 人瀏覽過

HashMap和Hashtable這兩個類別都實作java.util.map接口,但它們的工作方式和用法有差異。下面這篇文章就來帶了解HashMap和Hashtable之間的差別,希望對大家有幫助。

java中HashMap和Hashtable之間的差異是什麼

java中的HashMap和Hashtable範例

下面我們先透過範例來看看HashMap和Hashtable的差別。

HashMap和Hashtable將鍵/值對儲存在雜湊表中。當使用Hashtable或HashMap時,我們指定一個用作鍵的對象,以及要連結到該鍵的值。然後對該鍵進行哈希處理,得到的哈希(散列)代碼將用作表中儲存值的索引。

java程式碼:

import java.util.*; 
import java.lang.*; 
import java.io.*; 
  
/* 只有当类是公共的时,类的名称才必须是“main” */
class Ideone 
{ 
    public static void main(String args[]) 
    { 
        //----------hashtable ------------------------- 
        Hashtable<Integer,String> ht=new Hashtable<Integer,String>(); 
        ht.put(100,"Amit"); 
        ht.put(104,"Amit");  
        ht.put(101,"Vijay"); 
        ht.put(102,"Rahul"); 
        System.out.println("-------------Hash table--------------"); 
        for (Map.Entry m:ht.entrySet()) { 
            System.out.println(m.getKey()+" "+m.getValue()); 
        } 
  
        //----------------hashmap-------------------------------- 
        HashMap<Integer,String> hm=new HashMap<Integer,String>(); 
        hm.put(100,"Amit"); 
        hm.put(104,"Amit");  // hashmap 允许重复值
        hm.put(101,"Vijay"); 
        hm.put(102,"Rahul"); 
        System.out.println("-----------Hash map-----------"); 
        for (Map.Entry m:hm.entrySet()) { 
            System.out.println(m.getKey()+" "+m.getValue()); 
        } 
    } 
}
登入後複製

#輸出:

java中HashMap和Hashtable之間的差異是什麼

HashMap與Hashtable之間的區別

1、HashMap是非同步的,不是線程安全的,如果沒有正確的同步程式碼,則無法在多個執行緒之間共享;而Hashtable是同步的,是線程安全的,可以與許多線程共享。

註:如果不需要執行緒同步,HashMap通常優於Hashtable。

2、HashMap允許一個null鍵和多個null值,而Hashtable不允許任何null鍵或值。

3、hashmap實作linkedhashmap維護插入順序,treemap根據鍵的升序對映射進行排序。而hashtable不能保證任何類型的順序;它不會以任何特定的順序維護映射。

4、HashMap是繼承自AbstractMap類,而HashTable是繼承自Dictionary類別。

5、Hashtable預設的初始容量為11,之後每次擴充,容量就變成原來的2n 1;而,HashMap預設的初始容量大小為16,之後每次擴充,容量就變成原來的2倍。

6、計算hash值的方法不同 

7、HashMap的迭代器是fail-fast機制的,而Hashtable的迭代器不是fail-fast機制的。

相關影片教學推薦:《Java教學

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是java中HashMap和Hashtable之間的差異是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板