【问题标题】:Android - Get value from HashMapAndroid - 从 HashMap 中获取值
【发布时间】:2011-03-26 05:49:47
【问题描述】:

我曾尝试在 Android 中搜索 HashMap,但遇到问题:

考虑这个例子:

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

现在我想对其进行迭代并获取每种颜色的值并希望在“Toast”中显示。 如何显示?

【问题讨论】:

  • @clamp ya 我已经看过 android-sdk
  • 也许您还应该阅读可用的方法,例如keySet(),而不仅仅是描述。
  • @Pentium10 对 HashMap 一无所知....所以理论上我怎么能知道....顺便说一句,感谢您的帮助和支持
  • SDK中包含了它所拥有的方法的描述,你应该在询问之前检查一下HashMap上可以运行什么样的方法。

标签: java android hashmap android-widget


【解决方案1】:
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();
}

【讨论】:

  • 请注意,迭代顺序未定义。如果您想要与添加的集合相同的顺序,请使用 LinkedHashMap
  • 上面的代码只在“key”上迭代..而不是在“Value”上..比如它只显示“color1”、“color2”...等。而不是“红色”、“蓝色”等。
  • 只要向 hashmap 请求密钥,你就会得到它,我更新了我的代码。
  • 如何添加LinkedHashMap以相同的顺序返回,请帮助。
【解决方案2】:

这里有一个简单的例子来演示Map的用法:

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

请注意,条目以任意顺序迭代。如果您需要特定的订单,那么您可以考虑例如LinkedHashMap

另见

相关问题

在迭代条目时:

关于不同的Map 特征:


开启enum

您可能需要考虑使用enumEnumMap 而不是Map&lt;String,String&gt;

另见

相关问题

【讨论】:

  • 导入 java.util.*;必须添加
  • 如果你只想要值,这个答案显然更容易理解
【解决方案3】:

这没有警告!

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

【讨论】:

    【解决方案4】:
    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();
    }
    

    【讨论】:

      【解决方案5】:
      for (Object key : meMap.keySet()) {
              String value=(String)meMap.get(key);
              Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
          }
      

      【讨论】:

        【解决方案6】:
        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();
        }
        

        【讨论】:

          【解决方案7】:

          这对我有用:

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

          【讨论】:

            【解决方案8】:
             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();
            
                            }
            

            【讨论】:

              【解决方案9】:

              注意:如果您知道 Key,请使用此代码

              String value=meMap.get(key);
              

              【讨论】:

                猜你喜欢
                • 2014-03-22
                • 1970-01-01
                • 2013-08-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多