Schnellste und effizienteste Weg, um einen Schlüssel-Wert-Paar in Java zu suchen?
Frage
HAFTUNGSAUSSCHLUSS:
Diese Frage wurde nicht dazu gedacht, argumentative zu sein!
Was ist am schnellsten und weniger Speicher Trockenlegung Art und Weise ein Schlüssel-Wert-Paar gesucht? Ich werde Elemente in einem Schlüsselwert, wie Beziehung wird die Speicherung und ich brauche sie schnell zugreifen zu können. Sollte ich eine SQLite-Datenbank verwenden? Eine Landkarte? Eine Hashtable? Ein HashMap? Bitte geben Sie einige Vorteile / Nachteile der Verwendung eine beliebige Methode des Suchens.
Lösung
Jede Hash-basierte Map
Struktur ist die Art und Weise, solange Ihr Hashfunktion für den Schlüssel zu gehen, ist effizient. Sie können Wert ID verwenden: s. Als Ergebnis für die Suche nach Konserve Speicher während der Suche
Wenn Sie Ihre Daten bereits in der Datenbank aber Sie diese Suche auf das RDBMS ganz verlassen können, nachdem alles, was sie für diesen Stoff gemacht sind.
Andere Tipps
Wenn Sie Ihre Daten im Speicher, Map
s im Allgemeinen sind deine Freunde - sie gemeint sind
Führen Sie eine Hashtable
aber nicht genutzt. Es ist viel langsamer als die neueren Map-Implementierungen. weil seine Methoden synchronisiert sind, die die meiste Zeit nicht benötigt wird (und wenn nötig, gibt es eine viel bessere Alternative - siehe unten).
In einem Thread Kontext HashMap
wahrscheinlich geht in Ordnung sein.
Wenn Sie Sicherheitsfaden braucht, verwenden Sie einen ConcurrentHashMap
.