论坛首页 综合技术论坛

如何在一个ArrayList中插入1000000个对象而不会堆内存溢出。

浏览 6172 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-20  
最近在帮一个数学系的同学搞建模,其中有个全排列的算法,我把结果都add进ArrayList中,当所排列的个数过大时,比如10个,结果应该是10的阶乘。执行到一半,就堆内存溢出了。。。
我修改了Eclipse的jvm的参数设置,增加堆内存大小,貌似不起什么作用。
请教各位,有什么解决方案。
   发表时间:2008-03-21  
你先算算这程序需要多少内存再说。
0 请登录后投票
   发表时间:2008-03-21  
算法问题一般先分析算法本身需要的内存,能不能通过优化解决。
如果必须是要调整eclipse->preference->jre->jvm argument -Xms64m -Xmx128m。
可以通过写文件方式大体评估一下1,000的数据量所占内存大小。
0 请登录后投票
   发表时间:2008-03-21  
一百万如果是int的话也就4M内存。你主要的问题是ArrayList对每个int都要box成Integer。

要我,直接开一个new int[2000000]就是了。也才8M。
0 请登录后投票
   发表时间:2008-03-21  
建模...还是用点专业工具啊..

单纯的数学计算,MATHLAB,LINGO 都很快的...
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics