2011-07-26 98 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