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.