public ArrayList getList() throws IOException {
ArrayList list = new ArrayList(1000000);

for (int i = 0; i < getComList().size(); i++) {
String number1 = String.valueOf(getComList().get(i));
for (int j = 0; j < getObjList().size(); j++) {
String number2 = String.valueOf(getObjList().get(j));
if (number1.equalsIgnoreCase(number2))
break;
else
list.add(new String(number1));
}
}
return list;
}
该段代码最后运行的结果是
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
有没有办法解决这个问题.

解决方案 »

  1.   

    内存不够了,new ArrayList(1000000);改小点不行吗?
      

  2.   

    另外两个 arraylist 都有可以是超过 十万条级的数组  我不声明这大  它就不会报这个错误吗?
      

  3.   


    如果你的ArrayList里只存放String类型,还是建议你用数组来实现。private String[100000] list;用ArrayList太浪费了,效率也低。当需要对复杂对象,或长度无法提前估计的时候,才使用ArrayList。至于ArrayList能承受多大,还希望高手给个解释。
      

  4.   

    你把jvm的内存设大一些Arraylist就可以存的够多了
      

  5.   

    把虚拟机的内存舍得大一些
    运行的时候用 java -Xms128m -Xmx256m // 前者表示虚拟机初始化时的内存,后者表示虚拟机可用的最大内存,数值也可以自己修改