Java Hashtable和Hashmap有何不同
可能重复:Java Hashtable和Hashmap有何不同,java,hashmap,hashtable,Java,Hashmap,Hashtable,可能重复: 我见过散列表和散列映射在不同的代码中使用,但它们看起来做的是相同的事情。他们之间有区别吗?我应该在代码中使用哪一个?也可能是由于争用问题的坏主意。并发应用程序需要更复杂的思考。。。如果您希望它们可以扩展。Hashtable或多或少被弃用ConcurrentHashMap设计用于在并发环境中工作,但在这方面做得更好。其哈希表,请注意t:)@GangnamStyleOverflower哇,从未注意到,哈哈=)
我见过散列表和散列映射在不同的代码中使用,但它们看起来做的是相同的事情。他们之间有区别吗?我应该在代码中使用哪一个?
另外,java.util.Hashtable不允许任何空键,其中as java.util.HashMap允许一个空键。Hashtable是同步的,而as HashMap不是。这意味着,如果只有一个线程访问数据,请使用HashMap,否则请使用Hashtable。Hashtable不允许空键,因为HashMap允许一个空键是的,主要区别在于Hashtable是同步的,而HashMap不是。它们也有不同的超类层次结构。(FWIW,由于在并发环境中使用HashMap,我曾在几次大型商业应用程序中看到相当严重的失败。)顺便说一句,这是“HashMap”和“Hashtable”。注意资本化。你是否考虑过阅读JavaDoc?@ HooLiks-“我在一些场合看到在大型商业应用程序中由于在并发环境中使用HASMAP而出现相当严重的失败。”——但是使用“<代码>哈希表< /代码>也可能是由于争用问题的坏主意。并发应用程序需要更复杂的思考。。。如果您希望它们可以扩展。
Hashtable
或多或少被弃用ConcurrentHashMap
设计用于在并发环境中工作,但在这方面做得更好。其哈希表,请注意t
:)@GangnamStyleOverflower哇,从未注意到,哈哈=)