Java - Objekte mit Schlüssel / Wert-Paaren erstellen?

8

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.

    
JDS 05.08.2011, 19:17
quelle

5 Antworten

16

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.

  

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

%Vor%

(oder vorzugsweise Map<String, List<String>> )

  

ListObject: gleicher Deal, aber mit zwei Wertfeldern pro Schlüssel.

%Vor%     
Péter Török 05.08.2011, 19:20
quelle
4

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.

    
Jason S 05.08.2011 19:19
quelle
2

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.

    
Divesh 30.09.2011 11:07
quelle
1

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.

    
Vivien Barousse 05.08.2011 19:21
quelle
0

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.

    
Dylan 05.08.2011 19:21
quelle

Tags und Links