如何转换Map <string,list <string =“”>&gt;按键值输入文件

时间:2016-02-11 21:31:17

标签: java file hash hashmap guava

我的Map<String, List<String>>数据结构遵循以下代码:

for (int i = 0; i < al_dwpi_par.size(); i++) { if (!hash_features_dwpi_dc.containsKey(al_dwpi_par.get(i).getGA())) { List<String> list = new ArrayList<String>(); list.add(al_dwpi_par.get(i).getDC());

            hash_features_dwpi_dc.put(al_dwpi_par.get(i).getGA(), list);
        } else {
            hash_features_dwpi_dc.get(al_dwpi_par.get(i).getGA()).add(al_dwpi_par.get(i).getDC());
        }
    }`

这会创建一个哈希<key>,<List>,我的列表会在每个位置存储与该键相关的信息。显然哈希没有错误。

我正在尝试创建一个文件,其中该列表中的每个元素都是与该键相关的行。想象一下,Hash的一个元素是: <1997>,<ball, house, ball, monkey, light, banana取代。我的文件应该像1997.results.txt和每行一样:

ball house ball monkey light banana

我试图迭代我的​​哈希和其他一些东西,但没有成功。甚至试图与番石榴合作(正如一些类似的帖子所暗示的那样),也不好。

任何想法/示例/建议都非常受欢迎。

2 个答案:

答案 0 :(得分:3)

听起来你只是在寻找

map.forEach((name, lines) -> {
    try {
       Files.write(Paths.get(name + ".results.txt"), lines);
    } catch (IOException e) {
       // do whatever
    }
});

...假设Java 8可用。

答案 1 :(得分:1)

使用Java 8的答案很好。在这里,我采用自己的方法,稍长一点,希望它可以帮助您,或者如果Java 8不可用,它可以作为参考。使用NIO也很有用:)。

CURLOPT_CUSTOMREQUEST

快乐编码:)