Ich möchte die folgenden Arten von Objekten erstellen. Dies ist mein Wunsch auf höherer Ebene, den ich gerne in Java herausfinden würde:
ListObject (Schlüssel, String): Jeder Schlüssel entspricht einem String-Wert; Schlüssel ist eine Zeichenfolge selbst
ListObject (key, String []): Jeder Schlüssel entspricht einem Array von Strings; Schlüssel ist eine Zeichenfolge selbst
ListObject (key, String, String []): gleicher Deal, aber mit zwei Wertfeldern pro Schlüssel.
Wie würde ich Objekte dieses Typs erstellen (und verwenden?)?
Danke.
Sie scheinen etwas Map
zu brauchen List
s. Überprüfen Sie das Javadoc für Map-Implementierungen. Am häufigsten ist HashMap
, aber es sind auch sortierte, gleichzeitige, deterministisch iterierbare Implementierungen usw. verfügbar.
%Vor%ListObject: Jeder Schlüssel entspricht einem String-Wert; Schlüssel ist eine Zeichenfolge selbst
%Vor%ListObject: Jeder Schlüssel entspricht einem Array von Strings; Schlüssel ist eine Zeichenfolge selbst
(oder vorzugsweise Map<String, List<String>>
)
%Vor%ListObject: gleicher Deal, aber mit zwei Wertfeldern pro Schlüssel.
Map<KeyType,ValueType>
, das von HashMap<KeyType, ValueType>
implementiert wird TreeMap<KeyType, ValueType>
, unter anderem - HashMap ist ungeordnet und TreeMap ist bestellt.
Andere nützliche Karten sind LinkedHashMap
, die wie% sind. co_de%, iteriert jedoch in der Reihenfolge der Anzeigenschaltung und HashMap
in Guava mit einer Reihe von Hilfsmethoden und com.google.common.collect.Maps
, das eine unveränderliche Kartenimplementierung ist.
Für Ihren Schlüssel, der einem Array von Zeichenfolgen entspricht, sollten Sie sich ein com.google.common.collect.ImmutableMap
, das ist eine Karte mit mehreren Werten für einen bestimmten Schlüssel.
Sie können Map für diesen Zweck verwenden. Die allgemeine Syntax für Map ist:
%Vor%Jetzt gibt es vier Arten von Maps in Java:
HASH MAP - Verwenden Sie diese Map, wenn Sie sich nicht um die Reihenfolge kümmern, in der Elemente angezeigt werden, wenn Sie über die Map iterieren.
HASH TABLE - Synchronisierte Version der Hash-Map.
LINKED HASH MAP - Verwenden Sie diese Option, wenn Sie sich für den Anzeigenauftrag interessieren.
TREE MAP - Verwenden Sie diese Option, wenn Sie eine benutzerdefinierte Sortierreihenfolge wünschen.
Map wird verwendet, um assoziative Arrays in Java zu erstellen.
Karte für Ihr erstes Beispiel. Jeder String-Schlüssel ist einem String-Wert zugeordnet.
Karte für Ihr zweites Beispiel. Werte sind Arrays von String.
Für Ihr letztes Beispiel müssen Sie eine eigene Klasse mit zwei Feldern erstellen: ein String und ein String []. Erstellen Sie dann eine Zuordnung, die String einem Objekt Ihres Typs zuordnet.
Javas Map
-Typ würde höchstwahrscheinlich den Trick machen. A Map<KeyType, ValueType>
speichert Schlüssel-Wert-Paare, so dass Sie eine Map<String, String>
, eine Map<String, List<String>>
und eine Map<String, SomePairType>
haben.
Map
ist nur eine Schnittstelle: Sie müssen eine Implementierung auswählen. HashMap
und TreeMap
sind deine besten Wetten. Beide sind gut, aber TreeMap
funktioniert nur mit vergleichbaren Schlüsseltypen.
Da String
für Keys mit anderen Strings vergleichbar ist, könnten Sie für Schlüssel entweder eine Map-Implementierung verwenden.