我試過以下方法:如何在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