2011-07-26 5 views
0

私はjavaでマップコードを持っています。これは私の次のコードです。ここで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の問題を取得することができています、私は別のstrings.Pleaseの各キーの値は、私を助けてもらうことができますし、私のcode.Howでさらに使用するために文字列を分離するために、各キーの値と一致する必要があります。

+6

...これはあなたが解決しようとしている問題であることを確認し、あなたは具体的な質問がフォローアップしている場合は、APIを見てください。個別の文字列内の値 "となります。ジェネリックスを使用していることを考えれば、ループの中にキャストがある理由は明確ではありません。さらに、コード全体を2回表示しているように見えます...なぜですか? –

答えて

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をご覧ください。

あなたが各キー」によって何を意味するかは明らかではありません

1

マップキーセットを反復処理できます。しかし、あなたが必要とするものに応じてGuavaはbi-directionalマップの実装を持っています。

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

両方の答えは良いですが、イテレータをループするためにここに示したfor-each構造を推奨します。 – Kainsin