我的程序如下:
import java.util.*;
class evenNumber {
ArrayList<Integer> arrL=new ArrayList<Integer>();
ArrayList<Integer> saveEvenNumber(int N) {
if(N<2)
System.out.println("N should be greater than 2");
else
for(int i=1;i<N;i++)
{
while(i%2==0)
{
arrL.add(i);
}
}
return arrL;
}
void printEvenNumber() {
Iterator<Integer> tr=arrL.iterator();
while(tr.hasNext())
{
System.out.print(tr.next());
System.out.print("*2, ");
}
}
}
public class First {
public static void main(String args[]) {
evenNumber eN=new evenNumber();
eN.saveEvenNumber(13);
eN.printEvenNumber();
}
}
我收到以下错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at list.evenNumber.saveEvenNumber(First.java:15)
at list.First.main(First.java:35)`
我已经在“运行”>“运行配置”>“参数”中更改了大小,就像其他帖子中提到的一样,但是发生了同样的错误,但是我也遇到了同样的错误。
我该怎么办?
当时i == 2
,while循环将永远执行,这java.lang.OutOfMemoryError
就是抛出该循环的原因。
在break;
之后添加一个arrL.add(i);
。
正如Thomas所评论的,在这里使用if语句更为合适。
顺便说一句,有关Java命名,请参阅命名约定。对于您的情况,班级名称的首字母应大写。使用EvenNumber
代替evenNumber
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句