我试过以下方法:如何在Java中创建非常大的2D矩阵?
int [] [] Matrix = new int [Integer.MAX_VALUE-5] [Integer.MAX_VALUE-5];
但我得到这个异常:异常线程“main” java.lang.OutOfMemoryError:Java堆空间。
我的意思是我想存储为n×n大小的矩阵,其中n约为500000但我的Netbeans的显示内存溢出异常仅售10000,我如何增加内存
我试过以下方法:如何在Java中创建非常大的2D矩阵?
int [] [] Matrix = new int [Integer.MAX_VALUE-5] [Integer.MAX_VALUE-5];
但我得到这个异常:异常线程“main” java.lang.OutOfMemoryError:Java堆空间。
我的意思是我想存储为n×n大小的矩阵,其中n约为500000但我的Netbeans的显示内存溢出异常仅售10000,我如何增加内存
您应该看看sparse matrix,它允许您处理仅包含相对较少值的巨大矩阵。一个稀疏矩阵格式的
实例:
这就是我一直在寻找的东西。非常感谢。万岁Erbureth :) – 2014-11-06 15:46:34
有没有办法,数组将适合内存。
Integer.MAX_VALUE的是2^31。
两个尺寸是指在每4个字节存储2^62的整数。
为10000×10000设置堆大小为512MB:java -Xmx512m
。 500000 x 500000将您的堆大小设置为大约1TB:java -Xmx1000000m
。您可能需要等待几年,才能将具有该内存量的计算机提供给普通大众...
没有办法,你有数组足够的内存... – Thilo 2014-11-06 08:22:37
你有要求来处理这么大的数据块使用Java ?还是它必须是“A”HL语言? – ha9u63ar 2014-11-06 08:23:44
是否有问题需要解决,或者您是否只是拨动java? – Hannes 2014-11-06 08:24:40