私は Integer,String (K,V) の hashMap を持っていて、(キー Integer ではなく) 文字列値のみをファイルに書き込みたいと思います。マップ全体。いろいろ調べてみましたが、最初の n エントリをファイルに書き込む方法が見つかりませんでした (値を文字列の配列に変換してから実行できる例があります)。ファイルに書き込みたい)
質問する
26606 次
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
これを試して
- マップから値のコレクションを取得します。Map オブジェクト リファレンスを読み、 という名前のメソッドを見つけます
values
。この方法を使用する - 手順 1 で取得した値のコレクションを反復処理します。(選択した値の) いくつかをファイルに書き込みます。書き込み中に必要に応じてフォーマットします。
于 2013-03-14T15:59:53.373 に答える