Volevo solo sapere. Quali sono le differenze tra java.util.Properties
Vs java.util.HashMap<String, String>
? Quale è preferibile?java.util.Properties Vs java.util.Map <String, String>
risposta
Sono simili, ma dal punto di vista di design, la classe Properties
è considerato uno degli "errori" di Java, perché è un Hashtable
(invece di utilizzare un Hashtable). Dovrebbe essere stata un'interfaccia.
Utilizzare sempre l'astratto, ove possibile, quindi questo è preferito:
Map<String, String> stuff = new HashMap<String, String>();
tendono ad evitare usando Properties
meno che non si dispone di a.
Propties estende Hashtable, che è sincronizzato per impostazione predefinita. HashMap non è sincronizzato per impostazione predefinita. Stai scambiando la sicurezza dei thread incorporata per un leggero miglioramento delle prestazioni, che probabilmente non sarai in grado di misurare.
Proprietà è una classe precedente da Java 1.0. HashMap fa parte delle nuove API di Joshua Bloch.
java.util.Properties
è un Hashtable<Object,Object>
quindi si può vedere come una forma sincronizzata di java.util.HashMap<String, String>
Proprietà è piacevole da maneggiare ... proprietà:) Se lo si utilizza per altri scopi, allora la vostra scelta dipenderà dalla concorrenza gestione nel tuo programma
Hai il moderno ConcurrentHashMap<String, String>
per la sicurezza del filo. Non utilizzare realmente Properties
a meno che non lo si stia utilizzando per leggere un file .properties
.
classe Le proprietà è un'estensione del Hashtable, in pratica l'aggiunta di funzionalità di scrivere + leggere da un disco in un formato insieme (coppie di valori di testo come questo):
key1=value1
key2=value2
Se si desidera memorizzare su disco e usa quel formato quindi usa una Proprietà, altrimenti usa una HashMap o Hashtable.
Ci sono diversi scopi di queste due classi di utilità. Mappa, o nel tuo caso, HashMap è un oggetto di archiviazione generico in cui hai una chiave univoca e valori a cui puntano. HashMap può avere qualsiasi tipo di oggetto come chiave e qualsiasi tipo di oggetto come loro valori.
java.util.Properties è, tuttavia, una mappa di scopo speciale. È sviluppato per leggere/scrivere da/a file di proprietà. Ha metodi speciali per farlo [vedi load(..)
]. La mappa no.
Quindi, avete diverse situazioni per usarli. Luoghi in cui hai bisogno di proprietà da leggere, è meglio andare con Proprietà. E i punti in cui si desidera che i valori di ricerca vengano archiviati in base a una logica, vanno con HashMap<String, String>
.
Non esiste una regola semplice e veloce, è possibile utilizzare HashMap<String, String>
e Properties
in modo intercambiabile. Ma come ingegnere, utilizzare lo strumento corretto per l'attività.
Dup http://stackoverflow.com/questions/40471/differenze-tra-hashmap-and-hashtable – Jivings