0

我有一个浮点数组列表的数组列表,其中包含一些值和另外 3 个整数数组列表

对于浮点数的arraylist的arraylist,行数为47,列数为44300。所以当我尝试将包含所有这些arraylists的对象序列化到对象中时,出现堆溢出错误。

我使用arraylist 的arraylist 是因为在函数调用之前没有预先确定列数,因此必须是动态的。我相信这个arraylist 的arraylist 导致了这个问题。

有什么方法可以更好地实现动态二维数组并且内存更少?

非常感谢您的帮助

4

1 回答 1

4
8(float size) * 47* 44300 = 16656800 bytes-->16 MB

现在,如果您再考虑 3 个整数 ArrayList

4(int size) * 47* 44300 = 8328400 bytes-->8 MB * 3-->24 MB

我的意见是检查堆空间有多少并增加它。将集合更改为数组将是真正的微型基准测试。

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size

java -Xms256m -Xmx512m
于 2012-10-14T04:10:25.523 回答