嗨我需要一个多维数组来存储大数字但我得到堆空间错误。我有4gb ram。
double array[][] = new double[100000][100000]
我知道它需要大量内存,任何人都可以帮我解决这个问题吗?谢谢你的帮助
答案 0 :(得分:1)
如果数组是稀疏的(比填充的数组更空的数组单元格),你可以改为使用哈希映射。
对于哈希映射,使用数组的索引作为键。
示例:
{ 23: 'foo', 23945: 'bar' }
这将更加节省内存!
答案 1 :(得分:0)
如果您绝对需要那么多内存,则至少需要100000 * 100000 * 8 B或80 GB的RAM(加上阵列组织本身的任何开销)。我甚至会说你可能无法处理RAM中的那么多数据。
答案 2 :(得分:0)
你能够拥有一个大数组的唯一真正方法是在特定时刻将未使用的数组部分写入磁盘。这需要做一些工作,因为你必须跟踪你在阵列中的位置以推送和拉动磁盘上的数组数据。