回覆列表
  • 1 # maggie潘

    HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上可能高於Hashtable。

    HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。

    HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。

    Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個執行緒訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步(如果是ArrayList:List lst = Collections.synchronizedList(new ArrayList());如果是HashMap:Map map = Collections.synchronizedMap(new HashMap());)。

    Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以效能不會有很大的差異。

  • 中秋節和大豐收的關聯?
  • 怎樣跟不懂感恩的人相處?