使用arraylist处理大量数据

时间:2013-03-04 12:08:12

标签: java performance

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

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

最好的情况是所有单词都相同。所以我会显示该单词而不会发生 但考虑最坏的情况,如文件中的单词是唯一的。所以我需要将出现的所有单词显示为1.

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

1 个答案:

答案 0 :(得分:0)

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

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