0

我在java中有一个作业问题。

我有一个 GB 大小的文本文件。阅读它,并找到该文件中每个单词的出现次数,并将其显示为 [<< word >> - <>]。

最好的情况是所有的词都是一样的。所以我会显示没有出现的单词,但考虑最坏的情况,比如文件中存在的单词是唯一的。所以我需要显示所有出现为 1 的单词。

如何处理这个庞大的数据列表?我们对此有什么解决方案吗?

4

1 回答 1

0

理想情况下,用 java 编写 Map-Reduce 程序可能是最好的方法。这是使用 Map-Reduce 范例的字数统计程序示例:字数示例

其他方法可以使用递归读/写操作来执行此操作。创建一个地图(每个字母一个地图),以便您可以拥有 26 个地图。根据起始字母将单词放在适当的地图中。当达到一定的地图大小时,将该地图中的所有单词连同其增加的计数一起写入带有一些标识的文件,以了解其中包含哪些单词。从文件中读取所有单词后(以 GB 为单位的大小),从磁盘读回文件并计算字数。这将涉及一些 IO,但我认为不会导致任何与内存相关的问题。

于 2013-03-04T12:51:09.497 回答