DISCLAIMER:
Questa domanda non voleva essere polemica!Il modo più veloce ed efficiente di cercare una coppia chiave-valore in Java?
Qual è il modo più veloce e meno drenante della memoria per cercare una coppia chiave-valore? Conserverò gli oggetti in una relazione di valore-chiave e ho bisogno di accedervi rapidamente. Dovrei usare un database SQLite? Una cartina? Un Hashtable? Una HashMap? Si prega di fornire alcuni vantaggi/svantaggi dell'uso di qualsiasi metodo di ricerca.
HashTable NON è sincronizzato e più veloce di ConcurrentHashMap in ambienti a thread singolo mentre non ha alcun blocco! Se l'accesso alla mappa è multithreading ConcurrentHashMap è davvero la soluzione migliore. –
@Tobias, "A differenza delle nuove implementazioni di raccolta, Hashtable è sincronizzato" - da http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html –
Dato che stiamo parlando sulla semantica ... "L'implementazione di' ConcurrentHashMap' funziona meglio di 'HashMap' in quasi tutte le situazioni.Consente anche letture e scritture simultanee simultanee, e ha metodi che supportano operazioni composite comuni che altrimenti non sono thread-safe Se Java 5 è l'ambiente di distribuzione, inizia con 'ConcurrentHashMap'." * Clean Code - Un manuale di software agile Artigianato, Robert C. Martin, p.183 * – Esko