java - 使用 Map<String, Map<String, Long>> 写入文件时出现问题

标签 java string file hash hashmap

我有一个以下格式的数据结构 Map<String, Map<String, Long>> map :

1987 {abacate=1, catuaba, lion=3, coco=1, asas=2} 2005 {Polymer Science=3} 1234 {Environmental Studies=1}

其中每个都是我的散列和每对的关键 word=number对应于之前的操作,我计算了该单词的出现次数(用逗号分隔的单词是一个单词)。

我正在尝试迭代这个哈希,这样我就可以拥有每一对 word=number用分隔符分隔,但由于这种结构,我的结果不是很一致。

当我使用简单的Map<String, List<String>>时我可以毫无问题地迭代并恢复所有键和值。使用map.forEach()我能够做到这一点

map.forEach((name, lines) -> {
    try {
        Files.write(Paths.get(PATH), lines);`
    } catch (IOException e) {
        e.getStackTrace();
    }
});

但现在在这个结构中我遇到了麻烦。有谁有一个好的方法来遍历这个结构( Map<String, Map<String, Long>> ),以便我可以使用分隔符来编写它?

最佳答案

您可能只想在没有 lambda 的情况下迭代 Maps 来了解您想要做什么。

    Map<String, Map<String, Long>> map = new HashMap<>();

    //...

    for (Entry<String, Map<String, Long>> mapEntry : map.entrySet()) {
        String mapKey = mapEntry.getKey();
        Map<String, Long> submap = mapEntry.getValue();
        for (Entry<String, Long> submapEntry : submap.entrySet()) {
            String submapKey = submapEntry.getKey();
            Long submapList = submapEntry.getValue();

            //TODO: do whatever you want with these items.
        }
    }

关于java - 使用 Map<String, Map<String, Long>> 写入文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35732611/

相关文章:

java - 是否可以指示hibernate在执行插入时不要设置空值?

java - 使用 JSTL 提取主键

从 C 中的字符串中剪切子字符串

java - 用于查找嵌套代码块的正则表达式

javascript - 如何在没有 promise 的情况下在异步函数中读取文件?

file - 如何让 emacs 忽略一些特定的文件名,完成?

java toString() 返回这个

java - 使用 GSon 形成 JSON 字符串

php - 在php中计算具有固定宽度的文本 block 的高度

bash - 如何在 Chef 中运行 bash 脚本文件?