gpt4 book ai didi

java - 在 Java 中遍历/打印二叉 TreeMap

转载 作者:行者123 更新时间:2023-11-29 08:55:32 26 4
gpt4 key购买 nike

所以我有这个二叉树映射(称为“mainMap”),它将字符串作为其键,每个键都有一个内部映射作为其值对。 map 中的这个 map 包含字符串键和整数值。

这个 mainMap 的目的是告诉哪个单词对应于哪个文件及其频率。例如:如果“cat”在“Arnold.txt”中出现 14 次,在“Jake.txt”中出现 6 次,则 map 将保持不变

key ....猫
值 ... map [键 ... Arnold.txt,值 ... 14],[键.... Jake.txt,值... 6]

这没问题。我的问题是遍历并打印出 map 。我要

--对于map中的每一个key
1) 访问 map 中的当前键
2) 打印出那个 key
3) 取值(map)
.........对于值映射中的每个键
...............a) 打印出 key
...............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;
}

我希望这是足够的信息。此打印输出用于测试目的,以确保我的 map 正确收集数据。

最佳答案

我不确定你的树是如何构建的,但根据你描述数据结构的方式 ( 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("");
}
}

关于java - 在 Java 中遍历/打印二叉 TreeMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com