Android - Holen Sie sich Wert von HashMap


79

Ich habe versucht, in Android auf HashMap zu suchen, habe aber ein Problem:

Betrachten Sie dieses Beispiel:

HashMap<String, String> meMap=new HashMap<String, String>();
meMap.put("Color1","Red");
meMap.put("Color2","Blue");
meMap.put("Color3","Green");
meMap.put("Color4","White");

Jetzt möchte ich es wiederholen und den Wert jeder Farbe erhalten und in "Toast" anzeigen. Wie zeige ich es an?



3
@clamp ya ich habe bereits Android-SDK gesehen
Paresh Mayani

1
Vielleicht sollten Sie auch die verfügbaren Methoden lesen keySet(), nicht nur die Beschreibungen.
Pentium10

@ Pentium10 Weiß nichts über HashMap .... also theoretisch, wie kann ich es erfahren .... übrigens danke für Hilfe und Unterstützung
Paresh Mayani

Das SDK enthält Beschreibungen der darin enthaltenen Methoden. Bevor Sie nachfragen, sollten Sie überprüfen, welche Methoden auf HashMap ausgeführt werden können.
Pentium10

Antworten:


107
Iterator myVeryOwnIterator = meMap.keySet().iterator();
while(myVeryOwnIterator.hasNext()) {
    String key=(String)myVeryOwnIterator.next();
    String value=(String)meMap.get(key);
    Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
}

6
Beachten Sie, dass die Iterationsreihenfolge nicht definiert ist. Wenn Sie die gleiche Reihenfolge wünschen, in der die Sets hinzugefügt wurden, verwenden Sie LinkedHashMap
Key

Der obige Code wird nur auf "Schlüssel" wiederholt, nicht jedoch auf "Wert". So werden nur "Farbe1", "Farbe2" usw. angezeigt. anstelle von "rot", "blau" usw.
Paresh Mayani

Stellen Sie einfach eine Anfrage an Hashmap für den Schlüssel und Sie werden es haben, ich habe meinen Code aktualisiert.
Pentium10

Wie Sie LinkedHashMap hinzufügen können, um in derselben Reihenfolge zurückzukehren, helfen Sie bitte.
Jorny

84

Hier ist ein einfaches Beispiel, um die MapVerwendung zu demonstrieren :

Map<String, String> map = new HashMap<String, String>();
map.put("Color1","Red");
map.put("Color2","Blue");
map.put("Color3","Green");
map.put("Color4","White");

System.out.println(map);
// {Color4=White, Color3=Green, Color1=Red, Color2=Blue}        

System.out.println(map.get("Color2")); // Blue

System.out.println(map.keySet());
// [Color4, Color3, Color1, Color2]

for (Map.Entry<String,String> entry : map.entrySet()) {
    System.out.printf("%s -> %s%n", entry.getKey(), entry.getValue());
}
// Color4 -> White
// Color3 -> Green
// Color1 -> Red
// Color2 -> Blue

Beachten Sie, dass die Einträge in beliebiger Reihenfolge iteriert werden. Wenn Sie eine bestimmte Bestellung benötigen, können Sie zLinkedHashMap

Siehe auch

Verwandte Fragen

Beim Durchlaufen von Einträgen:

Auf verschiedenen MapEigenschaften:


Auf enum

Möglicherweise möchten Sie ein enumund EnumMapanstelle von verwenden Map<String,String>.

Siehe auch

Verwandte Fragen


import java.util. *; muss hinzugefügt werden
Durai Amuthan.H

Wenn Sie nur die Werte wollen, ist diese Antwort deutlich verständlicher
E.Akio

7

Dies ohne Warnungen!

    HashMap<String, String> meMap=new HashMap<String, String>();
    meMap.put("Color1","Red");
    meMap.put("Color2","Blue");
    meMap.put("Color3","Green");
    meMap.put("Color4","White");

    for (Object o : meMap.keySet()) {
        Toast.makeText(getBaseContext(), meMap.get(o.toString()),
                Toast.LENGTH_SHORT).show();
    }

5
HashMap<String, String> meMap = new HashMap<String, String>();
meMap.put("Color1", "Red");
meMap.put("Color2", "Blue");
meMap.put("Color3", "Green");
meMap.put("Color4", "White");

Iterator myVeryOwnIterator = meMap.values().iterator();
while(myVeryOwnIterator.hasNext()) {
    Toast.makeText(getBaseContext(), myVeryOwnIterator.next(), Toast.LENGTH_SHORT).show();
}

2
HashMap<String, String> meMap=new HashMap<String, String>();
meMap.put("Color1","Red");
meMap.put("Color2","Blue");
meMap.put("Color3","Green");
meMap.put("Color4","White");
Iterator iterator = meMap.keySet().iterator();
while( iterator. hasNext() ){
    Toast.makeText(getBaseContext(), meMap.get(iterator.next().toString()), 
    Toast.LENGTH_SHORT).show();
}

2

diese Arbeit für mich:

HashMap<String, String> meMap=new HashMap<String, String>();
meMap.put("Color1","Red");
meMap.put("Color2","Blue");
meMap.put("Color3","Green");
meMap.put("Color4","White");

Iterator iterator = meMap.keySet().iterator();
while( iterator. hasNext() )
{
    Toast.makeText(getBaseContext(), meMap.get(iterator.next().toString()), 
    Toast.LENGTH_SHORT).show();
}

2
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
    }

1
 Iterator iterator = meMap.keySet().iterator();
                while(iterator.hasNext() ){
                  //get key
                    String key=(String)iterator.next();
                    //toast value
                                           Toast.makeText(getBaseContext(),""+(String)meMap.get(key),Toast.LENGTH_SHORT).show();

                }

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.