Android – 从HashMap获取价值
我试图在Android上searchHashMap,但得到问题:
考虑这个例子:
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.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(); }
下面是一个演示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
也可以看看
- Effective Java 2nd Edition,Item 52:通过接口引用对象
- Java教程/集合 –
Map
界面 - Java语言指南/ for-each循环
相关问题
迭代条目时:
- 遍历映射
- 迭代并从地图中删除
- 如果你想在迭代的时候修改地图,你需要使用它的
Iterator
。
- 如果你想在迭代的时候修改地图,你需要使用它的
在不同的Map
特征上:
- 如何维护使用集合的插入顺序
在enum
您可能要考虑使用enum
和EnumMap
而不是Map<String,String>
。
也可以看看
- Java语言指南/枚举
相关问题
- 枚举:为什么? 什么时候?
这没有任何警告!
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(); }
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(); }
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(); }
这个工作对我来说:
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(); }
如果您知道密钥,请使用此代码
string值= meMap.get(key);
for (Object key : meMap.keySet()) { String value=(String)meMap.get(key); Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show(); }