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.