所以我有这个二进制树图(称为“mainMap”),它将字符串作为键,每个键都有一个内部映射作为其值对。地图中的此映射包含字符串键和整数值。
此mainMap的目的是告诉哪个词对应于哪个文件及其频率。 例如:如果“cat”在“Arnold.txt”中14次,并且在“Jake.txt”中6次,则地图将保持
钥匙......猫 value ... Map [key ... Arnold.txt,value ... 14], [关键.... Jake.txt,价值...... 6]这没问题。我的问题是穿越并打印出地图。我想
- 对于地图中的每个键
1)访问地图中的当前密钥
2)打印出该键
3)检索值(地图)
.........对于值图中的每个键
...............打印出钥匙
............... b)打印出值
4)略过一行,转到下一个键,重复步骤1-4
我以为我可以使用迭代器。但是,令我尴尬的是,我不知道如何使用我的代码来解决语法问题。 (我没有使用java内置的TreeMap实用程序。我使用的是程序员构造的数据结构。
我在二进制树映射代码中有以下方法
public Iterator< KeyValuePair<K, E> > iterator()
{
Iterator< KeyValuePair<K, E> > itr = new MyTreeItr();
return itr;
}
public Iterator< KeyValuePair<K, E> > breadthFirstIterator()
{
Iterator< KeyValuePair<K, E> > itr = new MyBreadthFirstItr();
return itr;
}
我希望这是足够的信息。此打印输出用于测试目的,以确保我的地图正确收集数据。
答案 0 :(得分:0)
我不确定树的结构如何,但根据您描述数据结构的方式(Map<String, Map<String, Integer>>
),您可以尝试这样做:
public void printAll(Map<String, Map<String, Integer>> map){
for(Map.Entry<String, Map<String,Integer>> entry : map.entrySet()){
System.out.println(entry.getKey());
for( Map.Entry<String, Integer> innerEntry : entry.getValue().entrySet()){
System.out.println(innerEntry.getKey());
System.out.println(innerEntry.getValue());
}
System.out.println("");
}
}