2016-03-19 1 views
0

Kann mir jemand helfen, auf einer Hash-Map zu iterieren und Wert in String-Array zu speichern? Ich habe eine Hash-Map mit zwei Schlüsseln und entsprechenden Werten unter jeder Taste. Da der Wertsatz groß ist, möchte ich für jeden Schlüssel Werte aus der Hash-Map iterieren und in einem String-Array speichern. Bitte helfen Sie.Iterieren von Hash-Map und Abrufen von Werten in String-Array

+0

Möchten Sie alle Werte im selben String-Array? Egal aus welchem ​​Schlüssel der Wert stammt? Welcher Datentyp ist der Wert? Ist es ein Array? Eine Liste? – Dom

+0

@Dom Ich möchte alle Werte unter dem gleichen Schlüssel in einem Array. Ich habe einen Schlüssel und mehrere Werte unter dem Schlüssel in hashmap.both der Schlüssel und Werte sind Zeichenfolge – ellie

Antwort

3

Versuchen Sie folgendes:

List<String> valuesList =new ArrayList<>(); 

for(String key:mHash.keySet()){ 
    valuesList.add(mHash.get(key)); 
} 

zu Strings Array:

String[] stockArr = new String[valuesList.size()]; 
stockArr = valuesList.toArray(stockArr); 
+1

Ich habe diesen Code nicht verstanden. Wenn meine Hash-Map einen Schlüssel "Länder" und viele Werte unter dem Schlüssel hat, wie werde ich diese Werte in ein String-Array abrufen? Könntest du es bitte erzählen? – ellie

1

ein neuen String-Array von der gleichen Größe wie Ihre hashmap machen. Schleife durch Ihre Hashmap und weisen Sie jede Iteration einem Element in Ihrem Array zu.

String[] stringArray = new String[mHashMap.keySet().size()]; 
int i = 0; 
for(String key: mHashMap.keySet()){ 
    stringArray[i] = mHashMap.get(key); 
    i++; 
} 

der for-Schleife, die ich oben gezeigt haben und wie ein anderer kommentierte auch gelesen werden kann, wie folgt:

for(String key : mHashMap.keySet()){ 
//do this 
} 

"for all keyStrings in myHashMap.keyStringSet(), do this" 
eg. for each item in the hashmap, do whatever is in the brackets. 

Ihre String-Array ist abgeschlossen.

+0

Noch bin ich nicht klar darüber, wie ich die Werte iterieren soll. Ich kenne den Schlüssel. Es gibt etwa 50 Werte unter einem einzigen Schlüssel. Alles, was ich will, ist, alle Werte unter diesen Schlüsseln in separate Arrays zu bekommen. Können Sie mir helfen? – ellie

+0

Ein Hash-Wert speichert einen Wert gegen einen Schlüssel, Sie können nicht mehrere Werte mit demselben Schlüssel haben. –

Verwandte Themen