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?

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

poligenelubricantes
fuente
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();
    }
Brian Stacks
fuente
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
fuente
3
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
    }
Tony Agustín
fuente
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
fuente
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();
}
Ahmad
fuente
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
fuente
1

Nota: Si conoce Key, use este código

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