Android - uzyskaj wartość z HashMap

79

Próbowałem wyszukiwać w HashMap w systemie Android, ale pojawia się problem:

Rozważmy ten przykład:

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

teraz chcę go iterować i uzyskać wartość każdego koloru i chcę wyświetlić w „Toast”. jak to wyświetlić?

Paresh Mayani
źródło
3
@clamp ya Widziałem już android-sdk
Paresh Mayani
1
Może powinieneś również przeczytać dostępne metody keySet(), a nie tylko opisy.
Pentium
@ Pentium10 Nie wiem nic o HashMap .... więc teoretycznie jak mogę się dowiedzieć ... btw dzięki za pomoc i wsparcie
Paresh Mayani
SDK zawiera opisy metod, które posiada, przed zapytaniem należy sprawdzić i zobaczyć, jakie metody można uruchomić na HashMap.
Pentium

Odpowiedzi:

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
źródło
6
Zauważ, że kolejność iteracji jest niezdefiniowana. Jeśli chcesz uzyskać tę samą kolejność, w jakiej zostały dodane zestawy, użyj LinkedHashMap
Key
powyższy kod jest powtarzany tylko dla „klucza” .. ale nie dla „Wartości” .. np. wyświetla tylko „kolor1”, „kolor2”… itd. zamiast „czerwony”, „niebieski” itp.
Paresh Mayani
Po prostu poproś o hashmap o klucz, a będziesz go mieć, zaktualizowałem mój kod.
Pentium
jak dodać LinkedHashMap, aby zwrócić w tej samej kolejności, proszę o pomoc.
Jorny
85

Oto prosty przykład pokazujący Mapużycie:

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

Zauważ, że wpisy są powtarzane w dowolnej kolejności. Jeśli potrzebujesz konkretnego zamówienia, możesz rozważyć npLinkedHashMap

Zobacz też

Powiązane pytania

Przy iteracji po wpisach:

O różnych Mapcechach:


Na enum

Możesz rozważyć użycie enumi EnumMapzamiast Map<String,String>.

Zobacz też

Powiązane pytania

smary wielogenowe
źródło
import java.util. *; należy dodać
Durai Amuthan.H
Jeśli chcesz tylko wartości, ta odpowiedź jest wyraźnie bardziej zrozumiała
E.Akio
7

To bez ostrzeżeń!

    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
źródło
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
źródło
3
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
    }
Tony Augustine
źródło
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();
}
Jasne
źródło
2

ta praca dla mnie:

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
źródło
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
źródło
1

Uwaga: jeśli znasz klucz, użyj tego kodu

String value=meMap.get(key);
Shetty Suresh Babu.
źródło