2013-03-04 35 views
0

我在java中有一个赋值问题。使用arraylist处理巨大的数据大小

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

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

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

+1

你试过了什么?你的代码遇到了什么问题?发布该代码。 – Dariusz 2013-03-04 12:10:59

回答

0

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

其他方法可以使用递归读/写操作执行此操作。 创建一个地图(每个字母表一个地图),以便您可以随身携带26个地图。取决于开始的字母,将词语放在适当的地图中。当达到某个地图尺寸时,将该地图中的所有单词及其递增的计数写入具有某种标识的文件,以知道它包含哪些单词。读完文件中的所有单词(以GB为单位)后,从磁盘读回文件并计算字数。这将涉及一些IO,但我认为不会引起任何与内存相关的问题。