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ć?



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();
}

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


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();
    }

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();
}

3
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).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

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();
}

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();

                }

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.