4

私は Integer,String (K,V) の hashMap を持っていて、(キー Integer ではなく) 文字列値のみをファイルに書き込みたいと思います。マップ全体。いろいろ調べてみましたが、最初の n エントリをファイルに書き込む方法が見つかりませんでした (値を文字列の配列に変換してから実行できる例があります)。ファイルに書き込みたい)

4

3 に答える 3

8

これは宿題のように聞こえます。

public static void main(String[] args) throws IOException {
    // first, let's build your hashmap and populate it
    HashMap<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, "Value1");
    map.put(2, "Value2");
    map.put(3, "Value3");
    map.put(4, "Value4");
    map.put(5, "Value5");

    // then, define how many records we want to print to the file
    int recordsToPrint = 3;

    FileWriter fstream;
    BufferedWriter out;

    // create your filewriter and bufferedreader
    fstream = new FileWriter("values.txt");
    out = new BufferedWriter(fstream);

    // initialize the record count
    int count = 0;

    // create your iterator for your map
    Iterator<Entry<Integer, String>> it = map.entrySet().iterator();

    // then use the iterator to loop through the map, stopping when we reach the
    // last record in the map or when we have printed enough records
    while (it.hasNext() && count < recordsToPrint) {

        // the key/value pair is stored here in pairs
        Map.Entry<Integer, String> pairs = it.next();
        System.out.println("Value is " + pairs.getValue());

        // since you only want the value, we only care about pairs.getValue(), which is written to out
        out.write(pairs.getValue() + "\n");

        // increment the record count once we have printed to the file
        count++;
    }
    // lastly, close the file and end
    out.close();
}
于 2013-03-14T15:50:02.110 に答える
0

ただ流れ...

値の反復子を取得します。カウンターをインクリメントしながらそれらを繰り返します。カウンターが n エントリに達すると出てきます。

他のアプローチは使用することです

for(int i=0, max=hashmap.size(); i<max, i<n; i++) { ... }
于 2013-03-14T15:34:37.130 に答える
0

参考:Java API

これを試して

  1. マップから値のコレクションを取得します。Map オブジェクト リファレンスを読み、 という名前のメソッドを見つけますvalues。この方法を使用する
  2. 手順 1 で取得した値のコレクションを反復処理します。(選択した値の) いくつかをファイルに書き込みます。書き込み中に必要に応じてフォーマットします。
于 2013-03-14T15:59:53.373 に答える