2013-03-31 171 views
2

散列表和散列表的內部數據結構有何差異體現在以下差異中?散列表和散列表

  1. HashMap允許一個null鍵,而hashtable不允許。
  2. 散列表不保證訂單被保留 - 雖然我還沒有閱讀散列表。

我認爲他們兩個本質上都是內部的「桶」數組。

回答

2

雖然它們都使用散列值來標識其中的元素。所以他們不能保證訂單。對於你提到的區別,這是因爲它們擴展了不同的抽象類。 Dictionary是一個抽象的映射類,其鍵必須是非空值。只有一個建議,對於這種問題,您可以在JDK中找到更多的東西,不要害怕檢查它。

public class Hashtable<K,V> 
    extends Dictionary<K,V> 
    implements Map<K,V>, Cloneable, java.io.Serializable { 

public class HashMap<K,V> 
    extends AbstractMap<K,V> 
    implements Map<K,V>, Cloneable, Serializable 
0

是的內部都維護陣列桶。我可以看到Hashtable類的方法是​​,其中HashMap方法不是。

僅供參考

0

,除非你正在學習考古學您應該使用HashMap和ConcurrentHashMap的(線程安全)。並且請將它們分配給Map接口實例,除非您使用特定的方法。

0

好吧HashTable類是同步的。所以要擺脫碰撞解決方案,鏈接你可以使用這個。並且他們倆都維持陣容鬥