use*_*421 0 java arraylist out-of-memory
不知道为什么我得到这个奇怪的错误,但是程序也没有编译,所以我为扫描器制作的while循环一定有问题.我从未见过这个特别的错误.
private ArrayList gradeList;
public GradeDistribution() {
this.gradeList = new ArrayList<Integer>();
}
public void addGrades(Scanner reader) {
int grade = Integer.parseInt(reader.nextLine());
while (true) {
if (grade == -1) {
this.printGrades();
break;
} else {
this.gradeList.add(grade); //the error points to this line
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有包含printGrades()方法,但我向你保证它不是问题的根源.我不知道我做错了什么,因为一切看起来都应该有效.ArrayList已初始化,所以我知道它不是......
你需要搬家:
int grade = Integer.parseInt(reader.nextLine());
Run Code Online (Sandbox Code Playgroud)
内while循环.
否则,你有尝试无限增加变量的值无限循环grade来gradeList.这会增加每次迭代的分配大小,并且当超过限制时抛出异常.
当你进入int grade = Integer.parseInt(reader.nextLine());内部循环时,it(reader.nextLine())将停止循环直到用户点击进入.
更改后,您的代码将变为:
public void addGrades(Scanner reader) {
while (true) {
int grade = Integer.parseInt(reader.nextLine());
if (grade == -1) {
this.printGrades();
break;
} else {
this.gradeList.add(grade); //the error points to this line
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |