我通常在非多線程環境中工作,所以通常使用HashMap而不是Hashtable。我知道兩者之間的區別,我也知道Hashtbale是在引入Java Collection框架之前引入的。 如果我們通過哈希表的源代碼,我們可以找到爲什麼Hashtable不是Java Collection框架的一部分?
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, java.io.Serializable {...
我的觀點是Hashtable的是之前Java集合框架引入方式(這樣的方式之前地圖介紹)。由於Hashtable實現Map,Hashtable實現已被修改。我的問題是爲什麼當Map是Hashtable不是Java Collection Framework的一部分?
它可能會實現Map接口(這不是拉伸,因爲它已經具有該功能),但它不擴展AbstractMap,並且可能*是關鍵。 –
嗯,根據javadocs:_As Java 2平臺v1.2,這個類被改造以實現Map接口,使它成爲Java Collections Framework的成員._請參閱:http://docs.oracle.com/ javase/6/docs/api/java/util/Hashtable.html – macias
因爲它是第一個,因爲相應的'@ since'註釋顯示清楚。 – EJP