我需要按升序对20 GB文件(由随机数组成)进行排序,但我不明白应该使用哪种技术。我尝试在我的Java程序中使用ArrayList,但它耗尽了内存。增加堆大小也不起作用,我猜20 GB太大了。任何人都可以指导我,我该怎么办?
答案 0 :(得分:9)
您应使用外部排序算法,不要试图将其放入内存中。
http://en.wikipedia.org/wiki/External_sorting
如果您认为它过于复杂,请尝试以下方法:
H2数据库很简单,适用于Java,可以嵌入到JAR中(不需要任何安装或设置)。
答案 1 :(得分:4)