2012-09-20 31 views
8

Java中的所有內容似乎都遵循除Hashtable之外的大寫規則。爲什麼Java中的哈希表(Hashtable)中的't'未被大寫

Hashtable<String, String> ht = new Hashtable<String, String>(); 

,而不是

ArrayList<String> a = new ArrayList<String>(); 

HashMap<String,Integer> a = new HashMap<String,Integer>(); 

這是爲什麼?哈希表是否只讀爲一個單詞(哈希表)?

+2

這個問題有多少技術是?小「t」是否會引起任何問題(或)混淆? – kosa

+0

這是一個早期的bug :-) –

+0

我認爲技術性在於使用Java的非建議編輯器 - 我總是最終編寫HashTable,因爲我習慣遵循大寫規則 – Slartibartfast

回答

9

Hashtable是在Java v1中創建的。後來在Java2中建立了集合的一致命名約定,其他類作爲全新Java Collection Framework的一部分發布。

其中btw使Hashtable過時,所以它不應該在新的代碼中使用。

希望有所幫助。

+2

我很驚訝有人真的知道答案:D – Uooo

+1

[FilenameFilter](http:// docs。 oracle.com/javase/7/docs/api/java/io/FilenameFilter.html)是一個新的。 – basiljames

+1

這不是一個答案,這是一個猜測,而不是一個很好的答案。幾乎任何年齡的Java的其他班級都使用駱駝案例。 – EJP

1

雖然這個問題沒有技術價值,我不得不承認,我一直問自己這個幾次:)

我的版本是,不像列表(ArrayList中),集(HashSet的),地圖( Tree/HashMap)表不是數據結構。

當然(可能已知)Hashtable類是在集合框架之前(在Java 1.0中)創建的。所以也許在那個時候,他們並沒有真正考慮過相同的命名約定。 一般來說,我們最好使用從Java + +的收集框架:)

+0

地圖不是數據結構?散列表不是數據結構?非數據結構類不必遵守編碼約定?請。 – EJP

+0

我想你沒有明白我的觀點。 Map是一個數據結構(作爲名稱HashMap的一部分,因此可以大寫)。這同樣適用於Set(作爲名稱HashSet的一部分等)。但是Hashtable呢? 「table」這個詞是否表示數據結構?當然,這只是我的想法,整個線程不是技術性的,所以對於我來說,這裏允許某種猜測:) –

+0

「表單字表示數據結構嗎?」它對我有用,但即使它沒有,仍然留下最後的問題沒有答案。 – EJP