4

我有一个 Integer,String (K,V) 的 hashMap 并且只想将字符串值写入文件(而不是键 Integer),并且我只想将一些第一个 n 条目(无特定顺序)写入文件而不是整个地图。我尝试了很多,但找不到将第一个 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 回答