Android: obtenga valor de HashMap


79

He intentado buscar en HashMap en Android, pero tengo un problema:

Considere este ejemplo:

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

ahora quiero iterarlo y obtener el valor de cada color y quiero mostrarlo en "Toast". ¿cómo lo muestro?



3
@clamp ya he visto android-sdk
Paresh Mayani

1
Quizás también debería leer los métodos disponibles como keySet(), no solo las descripciones.
Pentium10

@ Pentium10 No sé nada sobre HashMap ... entonces, en teoría, ¿cómo puedo llegar a saberlo ...? Por cierto, gracias por la ayuda y el apoyo
Paresh Mayani

El SDK contiene descripciones sobre los métodos que tiene, debe verificar y ver qué tipo de métodos se pueden ejecutar en HashMap antes de preguntar.
Pentium10

Respuestas:


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
Tenga en cuenta que el orden de iteración no está definido. Si desea el mismo orden en que se agregaron los conjuntos, use LinkedHashMap
Clave

el código anterior se repite solo en la "clave" ... pero no en el "Valor" ... por ejemplo, solo muestra "color1", "color2" ... etc. en lugar de "rojo", "azul", etc.
Paresh Mayani

Simplemente haga una solicitud a hashmap para la clave y la tendrá, actualicé mi código.
Pentium10

cómo agregar LinkedHashMap para devolver en el mismo orden, ayuda por favor.
Jorny

85

Aquí hay un ejemplo sencillo para demostrar el Mapuso:

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

Tenga en cuenta que las entradas se repiten en orden arbitrario. Si necesita un pedido específico, puede considerar, por ejemplo,LinkedHashMap

Ver también

Preguntas relacionadas

Al iterar sobre las entradas:

Sobre diferentes Mapcaracterísticas:


En enum

Es posible que desee considerar el uso de enumy en EnumMaplugar de Map<String,String>.

Ver también

Preguntas relacionadas


importar java.util. *; debe ser agregado
Durai Amuthan. H

Si solo desea los valores, esta respuesta es claramente más comprensible
E.Akio

7

¡Esto sin advertencias!

    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

este trabajo para mi:

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

                }

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.