创建的后缀为.java的文本文件不是java largefile_sourcee file 而是java文件,为什么会这样,有影响吗

鉴于大数据集不适合内存是否囿任何库或api在java中执行排序?
实现可能类似于linux实用程序排序

java提供了一个通用的排序例程,它可以用作问题的更大解决方案的一部分对数據进行排序的常用方法是:太大而不适合内存:

1)读取适合主内存的数据,假设它是1 gb

4)重复步骤1-3直到您完成所有数据,将每个数据块保存在单独的文件中因此,如果你的原始数据是9 gb你现在将有9个已排序的数据块,标记为"chunk-1"到"chunk-9"

5)你现在只是需要最终合并排序以将9个排序的塊合并为单个完全排序的数据集合并排序将对这些预先排序的块非常有效。它基本上将打开9个文件读取器(每个块一个)再加上一个攵件写入器(用于输出)。然后它比较每个读取文件中的第一个数据元素,并选择最小值该值将写入输出文件。从中读取所选值的读取器前进到其下一个数据元素并重复找到最小值的9向比较过程,再次将答案写入输出文件重复此过程,直到从所有块文件中读取所有數据

6)步骤5完成所有数据读取后 - 现在输出文件包含一个完全排序的数据集

使用这种方法,您可以轻松编写自己的通用"megasort"实用程序该实用程序采用文件名和maxmemory参数并有效地对文件进行排序。使用临时文件我敢打赌,你可以找到至少一些实现但如果没有,你可以按照上面的描述自己滚动


我要回帖

更多关于 source file 的文章

 

随机推荐