hashtable被棄用了

 

Hashtable的做者:
在這裏插入圖片描述
HashMap的做者:
在這裏插入圖片描述
Hash Map的做者比Hashtable的做者多了著名頂頂的併發大神Doug Lea。他寫了util.concurrent包。著有併發編程聖經Concurrent Programming in Java: Design Principles and Patterns 一書。他的我的主頁: http://g.oswego.edu/java

Josh Bloch 爲領導了衆多Java平臺特性的設計和實現,其中包括Java Collection框架、java.math包以及assert機制。著有 Effective Java 一書。編程

Arthur van Hoff最先任職於硅谷的Sun Microsystems公司,從事Java程序語言的早期開發工做。設計並實現了JDK 1.0的許多方面,包括Java編譯器、Java調試器、許多標準Java類以及HotJava瀏覽器。隨後創立了多家成功的企業,其中包括Marimba(1999年IPO)、Strangeberry(後被TiVo收購)、ZING(後被Dell收購)和Ellerdale(後被Flipboard收購)。Java命名來源有這麼一種說法,來源於開發人員名字的組合:James Gosling、Arthur Van Hoff和Andy Bechtolsheim首字母的縮寫。瀏覽器

Neal Gafter是Java SE 4和5語言加強的主要設計者和實現者,他的Java閉包實現贏得了OpenJDK創新者挑戰賽的大獎。他也在繼續參與SE 7和8的語言發展。以前Neal在爲Google的在線日曆工做,也曾經是C++標準委員會的一員,並曾在Sun微系統公司,MicroTec研究院和德州儀器領導開發C和C++編譯器。現在Neal在微軟開發.NET平臺編程語言。Neal是《Java Puzzlers:Traps, Pitfalls and Corner Cases》(Addison Wesley,2005)一書的合做者。他擁有羅徹斯特大學計算機科學的博士學位。安全

可見這些做者都是java乃至整個it領域大名鼎鼎的人物。也只有這些大師級人物才能寫出HashMap這麼大道至簡的數據類型了。markdown

線程安全形成的效率低下

雖然Hashtable比HashMap出現的早一些,可是如今Hashtable基本上已經被棄用了。而HashMap已經成爲應用最爲普遍的一種數據類型了。形成這樣的緣由一方面是由於Hashtable是線程安全的,效率比較低。另外一方面多是由於Hashtable沒有遵循駝峯命名法吧。。。閉包

Hashtable繼承了被棄用的父類

HashMap是繼承自AbstractMap類,而HashTable是繼承自Dictionary類。
Dictionary類是一個已經被廢棄的類(見其源碼中的註釋)。父類都被廢棄,天然而然也沒人用它的子類Hashtable了。併發

具體分析請看:
https://blog.csdn.net/wangxing233/article/details/79452946框架