1. 程式人生 > >hashtable被棄用了

hashtable被棄用了

sta http prism design sdn 源碼 分享 java平臺 首字母

Hashtable的作者:
技術分享圖片
HashMap的作者:
技術分享圖片
Hash Map的作者比Hashtable的作者多了著名頂頂的並發大神Doug Lea。他寫了util.concurrent包。著有並發編程聖經Concurrent Programming in Java: Design Principles and Patterns 一書。他的個人主頁: http://g.oswego.edu/

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這麽大道至簡的數據類型了。

線程安全造成的效率低下

雖然Hashtable比HashMap出現的早一些,但是現在Hashtable基本上已經被棄用了。而HashMap已經成為應用最為廣泛的一種數據類型了。造成這樣的原因一方面是因為Hashtable是線程安全的,效率比較低。另一方面可能是因為Hashtable沒有遵循駝峰命名法吧。。。

Hashtable繼承了被棄用的父類

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

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

hashtable被棄用了