views:

244

answers:

4

I have tried to search on HashMap in Android, but getting problem:

Consider this example:

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

now i want to iterate it and get the value of each colour and want to display in "Toast". how do i display it ?

Any idea.

+1  A: 
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
Note that iteration order is undefined. If you want the same order as the sets were added use LinkedHashMap
Key
@Pentium the above code is iterated over only on "key"..but not for "Value"..such as it displays only "color1", "color2"...etc. instead of "red", "blue", etc.
PM - Paresh Mayani
Just make a request to hashmap for the key and you will have it, I updated my code.
Pentium10
@Pentium10 ok its running....thanx a lot for the support
PM - Paresh Mayani
A: 
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
+1  A: 
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
@Nishant thanx for help....it also runs
PM - Paresh Mayani
+4  A: 

Here's a simple example to demonstrate Map usage:

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

Note that the entries are iterated in arbitrary order. If you need a specific order, then you may consider e.g. LinkedHashMap

See also

Related questions

On iterating over entries:

On different Map characteristics:


On enum

You may want to consider using an enum and EnumMap instead of Map<String,String>.

See also

Related questions

polygenelubricants
@polygenelubricants really gr8 help..sorry i can not accept more than one answer
PM - Paresh Mayani