我有一个以下格式的数据结构 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/