Ich muss Schlüssel / Wert-Informationen in irgendeiner Art von Sammlung speichern. In C # würde ich ein Wörterbuch wie folgt definieren:
%Vor%Dann würde ich auf die Werte so zugreifen:
%Vor% Wie mache ich das in Java? Ich habe Beispiele mit ArrayList
gesehen, aber ich würde gerne die Lösung mit Generika, wenn möglich.
Sie möchten ein Map
Beachten Sie, dass ich in der letzten Zeile hätte sagen können:
%Vor%Was eine Kurzform für (mit Java automatisches Unboxing) ist:
%Vor% Wenn in der Map kein Wert für den angegebenen Schlüssel vorhanden ist, gibt get
null
zurück und dieser Ausdruck gibt NullPointerException
aus. Daher ist es immer eine gute Idee, in diesem Fall boxed type Integer
zu verwenden
Verwende ein java.util.Map
. Es gibt mehrere Implementierungen:
HashMap
: O (1) lookup, verwaltet nicht die Reihenfolge der Schlüssel TreeMap
: O (log n) lookup, verwaltet die Reihenfolge der Schlüssel, sodass Sie sie in einer garantierten Reihenfolge durchlaufen können LinkedHashMap
: O (1) lookup, iteriert über Schlüssel in der Reihenfolge, in der sie der Karte hinzugefügt wurden. Sie verwenden sie wie:
%Vor%Weitere Informationen zum Arbeiten mit Sammlungen finden Sie in der Google Sammlungen-Bibliothek . Es ist ausgezeichnet.
Sie verwenden ein Map
in Java.
Beachten Sie, dass Sie int
(oder einen anderen primitiven Typ) nicht als generischen Typparameter verwenden können, aber aufgrund von Autoboxing verhält es sich immer noch fast als wäre es ein Map<String, int>
anstelle von Map<String, Integer>
. (Allerdings möchten Sie in leistungsabhängigem Code nicht viel Autoboxing durchführen.)
Sie möchten definitiv ein HashMap
, das ist die Java-Version von C # Dictionary
.
Tags und Links java map dictionary collections