我尝试过以下方式:
int [] [] Matrix = new int [Integer.MAX_VALUE-5] [Integer.MAX_VALUE-5];
但是我得到了这个例外:线程" main" java.lang.OutOfMemoryError:Java堆空间。
我的意思是我想存储一个nxn大小的矩阵,其中n大约为500000,但我的Netbeans只显示10000个内存异常,我将如何增加内存
答案 0 :(得分:4)
阵列无法适应内存。
Integer.MAX_VALUE是2 ^ 31。
两个维度意味着以4个字节存储2 ^ 62个整数。
答案 1 :(得分:2)
你应该看一下sparse matrix,它允许你处理只包含相对较少值的巨大矩阵。
稀疏矩阵格式的示例:
答案 2 :(得分:1)
对于10000 x 10000,将堆大小设置为512MB:java -Xmx512m
。
对于500000 x 500000,将堆大小设置为大约1TB:java -Xmx1000000m
。您可能需要等待几年才能让具有该内存量的计算机可供公众使用...