Java Android - 从 HashMap 中获取价值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3422388/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Android - Get value from HashMap
提问by Paresh Mayani
I have tried to search on HashMap in Android, but getting problem:
我曾尝试在 Android 中搜索 HashMap,但遇到问题:
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 color and want to display in "Toast". how do I display it?
现在我想迭代它并获取每种颜色的值并想在“Toast”中显示。我如何显示它?
采纳答案by Pentium10
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();
}
回答by Suresh
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();
}
回答by Nishant Shah
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();
}
回答by polygenelubricants
Here's a simple example to demonstrate Map
usage:
这是一个演示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
Note that the entries are iterated in arbitrary order. If you need a specific order, then you may consider e.g. LinkedHashMap
请注意,条目以任意顺序迭代。如果您需要特定的订单,那么您可以考虑例如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
- Effective Java 2nd Edition,Item 52:通过接口引用对象
- Java教程/收藏-该
Map
接口 - Java 语言指南/for-each 循环
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
.
- If you want to modify the map while iterating, you'd need to use its
On different Map
characteristics:
在不同的Map
特性上:
On enum
在 enum
You may want to consider using an enum
and EnumMap
instead of Map<String,String>
.
您可能需要考虑使用enum
andEnumMap
而不是Map<String,String>
。
See also
也可以看看
Related questions
相关问题
回答by Ahmad
this work for me:
这对我有用:
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();
}
回答by Brian Stacks
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();
}
回答by Shetty Suresh Babu.
Note: If you know Key, use this code
注意:如果您知道 Key,请使用此代码
String value=meMap.get(key);
回答by Tony Augustine
for (Object key : meMap.keySet()) {
String value=(String)meMap.get(key);
Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
}
回答by Syed Danish Haider
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();
}