2012-09-20 8 views
8

Tutto in Java sembra seguire le regole di maiuscola eccetto Hashtable.Perché la 't' nella tabella hash (Hashtable) in Java non è maiuscola

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

al contrario di

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

o

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

Perché è questo? Hash Table è letto come una sola parola (Hashtable)?

+2

Quanto tecnica è questa domanda? Avere una piccola "t" causa qualche problema (o) confusione? – kosa

+0

Era un buglet precoce :-) –

+0

Il tecnicismo suppongo stia usando editor di non suggerimento per Java - invariabilmente finisco per scrivere HashTable perché sono così abituato a seguire le regole di maiuscole – Slartibartfast

risposta

9

Hashtable è stato creato in Java v1. Le convenzioni di denominazione coerenti per le collezioni sono state stabilite successivamente, in Java2, quando le altre classi sono state pubblicate come parte del nuovissimo Java Collection Framework.

Che cosa ha reso Hashtable obsoleto, quindi non dovrebbe essere utilizzato nel nuovo codice.

Spero che questo aiuti.

+2

Sono sorpreso che qualcuno conosca davvero una risposta per questo: D – Uooo

+1

[FilenameFilter] (http: // docs. oracle.com/javase/7/docs/api/java/io/FilenameFilter.html) è una nuova. – basiljames

+1

Non è una risposta, è una supposizione, e non una buona idea. Praticamente ogni altra classe in Java di qualsiasi età utilizza il caso cammello. – EJP

1

Anche se questa domanda non ha alcun valore tecnico, devo ammettere, mi sono chiesto questo un paio di volte :)

La mia versione è che a differenza di Lista (ArrayList), Set (HashSet), Mappa (Tabella Tree/HashMap) non è una struttura dati.

Naturalmente (è possibile che sia noto) che la classe Hashtable sia stata creata prima del framework di raccolta (in java 1.0). Quindi forse a quel punto non pensavano davvero alle stesse convenzioni di denominazione. In generale è meglio usare framework di raccolta da java 2+ :)

+0

Una mappa non è una struttura dati? Una tabella hash non è una struttura dati? Le classi di struttura non dati non devono rispettare le convenzioni di codifica? Per favore. – EJP

+0

Penso che tu non abbia capito il mio punto. Mappa È una struttura dati (come parte del nome HashMap e quindi può essere in maiuscolo). Lo stesso vale per Set (come parte del nome HashSet, ecc.). Ma per quanto riguarda Hashtable? La parola "tabella" indica una struttura dati? Naturalmente questo è solo un mio pensiero, l'intero thread non è tecnico, quindi per me è consentita una specie di speculazione :) –

+0

"La tabella di parole denota una struttura dati?" Lo fa a me, ma anche se non lo fa lascia ancora l'ultima domanda senza risposta. – EJP

Problemi correlati