Android - Get value from HashMap

前端 未结 9 1424
抹茶落季
抹茶落季 2020-11-29 16:59

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

Consider this example:

HashMap meMap=new HashMap

        
相关标签:
9条回答
  • 2020-11-29 17:39

    This with no warnings!

        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();
        }
    
    0 讨论(0)
  • 2020-11-29 17:41

    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

    • Effective Java 2nd Edition, Item 52: Refer to objects by their interfaces
    • Java Tutorials/Collections - The Map interface
    • Java Language Guide/The for-each loop

    Related questions

    On iterating over entries:

    • Iterate Over Map
    • iterating over and removing from a map
      • If you want to modify the map while iterating, you'd need to use its Iterator.

    On different Map characteristics:

    • How to Maintain order of insertion using collections

    On enum

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

    See also

    • Java Language Guide/Enums

    Related questions

    • Enumerations: Why? When?
    0 讨论(0)
  • 2020-11-29 17:43
    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();
    }
    
    0 讨论(0)
提交回复
热议问题