Hashtable与Hashmap有何不同

2022-09-02 01:52:27

可能的副本:
HashMap和Hashtable之间的差异?

我见过在不同代码中使用的哈希表和哈希图,但它们看起来是做同样的事情。它们之间有区别吗?我应该在代码中使用哪一个?


答案 1

java.util.Hashtable 方法已同步java.util.Hashmap 方法不是。如果您使用 Hashtable,则会出现性能下降,因为没有两个线程能够同时访问其方法。如果你关心你的应用程序中的线程安全,Hashtable就是要走的路。如果你不关心线程安全,Hashmap就是要走的路,因为它是有效的,那么hashtable.java.util.Hashtable也不允许任何空键,而java.util.HashMap允许一个空键。


答案 2

Hashtable是同步的,而HashMap不是。这意味着,如果您只有一个线程访问数据,请使用 HashMap,否则使用 Hashtable。