2011-07-26 54 views
0

我在java.ma上有一个映射代码,这是我的下面的代码。java中的映射

Map<String, String> map = new HashMap<String, String>(); 

map.put("type", "One"); 
map.put("name", "Two"); 
map.put("setup", "Three"); 


System.out.println("Map Values Before: "); 
Set<String> keys = map.keySet(); 
for (Iterator<String> i = keys.iterator(); i.hasNext();) { 
    String key = (String) i.next(); 
    String value = (String) map.get(key); 
    Map<String, String> map = new HashMap<String, String>(); 
} 

在这里我能够得到output.My问题是我需要匹配每个键值来分隔在我code.How进一步使用字符串我可以在不同的strings.Please每个键值帮我。

+6

目前尚不清楚你所说的“每个键是什么意思价值在单独的字符串“。由于您使用的是泛型,因此您也不清楚为什么您会在循环中投射。此外,你似乎有整个代码两次......为什么? –

回答

0

在你的意思隔空猜测,要填充与键对应的变量

String type; // gets the value "One" 
String name; // gets the value "Two" 
String name; // gets the value "Three" 

现在,我认为简单的代码,如

type = map.get("type"); 

是不可接受的,或者你当然不会问这个问题,所以你想要一些迭代这组属性的程序化方法?

在这种情况下查看Reflection API。

请确认这是你要解决的问题,看看这些API,如果再有具体问题跟进......

1

这个病让你迭代你的地图键集。然而,根据你需要的番石榴有一个bi-directional地图实施,这可能对你的情况有用。

for(String key:map.keySet()) 
    System.out.println("key: "+key+" value: "+map.get(key)); 
+0

这两个答案都很好,但我绝对推荐这里显示的for-each构造循环迭代器。 – Kainsin