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?

Paresh Mayani
quelle
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();
}
Pentium10
quelle
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

Polygenschmierstoffe
quelle
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();
    }
Brian Stacks
quelle
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();
}
Nishant Shah
quelle
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();
}
Suresh
quelle
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();
}
Ahmad
quelle
2
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
    }
Tony Augustine
quelle
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();

                }
Syed Danish Haider
quelle
1

Hinweis: Wenn Sie Key kennen, verwenden Sie diesen Code

String value=meMap.get(key);
Shetty Suresh Babu.
quelle