我已经看到在不同代码中使用的哈希表和哈希映射,但它们看起来像是做同样的事情。它们之间有区别吗?我应该在代码中使用哪一个?
答案 0 :(得分:9)
java.util.Hashtable 方法同步, java.util.Hashmap 方法不是。如果您使用 Hashtable ,则会有性能影响,因为没有两个线程可以同时访问其方法。 如果您关心应用中的线程安全,那么 Hashtable 就是您的选择。如果您不关心线程安全性 Hashmap 是可行的方法,因为它的效率是哈希表。 java.util.Hashtable也不允许任何null键,其中java.util.HashMap允许一个空键。
答案 1 :(得分:4)
Hashtable是同步的,而HashMap则不同步。这意味着如果您只有一个线程访问数据,请使用HashMap,否则使用Hashtable。
答案 2 :(得分:0)
HashTable不允许使用null键,因为hashmap允许一个空键