5

マップのキーと関連する値を別々の行に出力することは可能でしょうか。私はJavaとマップが初めてです。最後の行のように通常printlnを使用して印刷しようとすると、キーと値が中括弧内にすべて1行で印刷されます。これはおそらくばかげた質問であることはわかっていますが、しばらくの間苦労しており、オンラインでも講義ノートでも解決策を見つけられませんでした. これは、大規模に実装する前に、機能させるためにセットアップしたクラスです。私のコードやその他のものが従来の方法で表示されない場合は、事前に申し訳ありません。投稿するのはこれが初めてです。

import java.util.TreeMap;
public class tester {   
    public static void main(String[] args){
        TreeMap<String, String> dir = new TreeMap<String, String>();
        String key = "b";
        String value = "2";
        String key1 = "a";
        String value2 = "1";
        dir.put(key, value);
        dir.put(key1, value2);
        System.out.println(dir);
    }
}
4

4 に答える 4

2

そうです、マップをループして、キーと値を別々の行に出力する必要があります。

TreeMap<String, String> dir = new TreeMap<String, String>();

for(Entry<String, String> en: dir.entrySet()) {

    System.out.println(en.getKey());
    System.out.println(en.getValue());
}
于 2012-11-01T00:07:24.167 に答える
1

最後の行を次のように置き換えます。

for(Map.Entry<String, String> entry : dir.entrySet()) {
   System.out.println(entry);
}

出力します:

a=1
b=2

実際、EntrytoString()メソッドはすでに次のようになっています。

public String toString() {
   return key + "=" + value;
}
于 2012-11-01T00:12:19.220 に答える
1

はい...

for (String key : dir.keySet()) {
    System.out.println(key + " = " + dir.get(key));
}

詳細については、MapAPI を参照してください。

Mik378 からのフィードバックで更新

Mik378 で提案されているように、より良いパフォーマンスを得るには、使用する方が良いですMap.entrySet( keySet イテレーターを使用して Map 値にアクセスする)

for(Map.Entry<String, String> entry : dir.entrySet()) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}
于 2012-11-01T00:08:51.250 に答える