我有一些文件应该在每一行的开头根据ID进行排序。文件约为2-3 GB。
我试图将所有数据读入ArrayList
并对其进行排序。但是内存不足以保留所有内容。这是行不通的。
线条看起来像
0052304 0000004000000000000000000000000000000041 John Teddy 000023
0022024 0000004000000000000000000000000000000041 George Clan 00013
如何对文件排序?
那不是Java问题。您需要研究一种有效的算法来对未完全读入内存的数据进行排序。可以对Merge-Sort进行一些修改以实现此目的。
看一下这个:http : //en.wikipedia.org/wiki/Merge_sort
和:http : //en.wikipedia.org/wiki/External_sorting
基本上,这里的想法是将文件分成较小的部分,(使用合并排序或另一种方法)对它们进行排序,然后使用来自合并排序的合并来创建新的排序文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句