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
有没有办法解决这个问题.
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
有没有办法解决这个问题.
如果你的ArrayList里只存放String类型,还是建议你用数组来实现。private String[100000] list;用ArrayList太浪费了,效率也低。当需要对复杂对象,或长度无法提前估计的时候,才使用ArrayList。至于ArrayList能承受多大,还希望高手给个解释。
运行的时候用 java -Xms128m -Xmx256m // 前者表示虚拟机初始化时的内存,后者表示虚拟机可用的最大内存,数值也可以自己修改