每次我尝试运行此方法
private void resetOdds() {
mOdds[1] = 0.10;
mOdds[2] = 0.25;
mOdds[3] = 0.35;
mOdds[4] = 0.30;
}
我收到IndexOutOfBounds错误。我不知道为什么,因为我在数组中提供了足够多的项目来改变:
private final double[] mOdds = { 0.10, 0.25, 0.30, 0.35 };
有谁知道我为什么会收到这个错误?
答案 0 :(得分:5)
您的索引关闭了一个;它应该从0开始:
mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;
答案 1 :(得分:1)
将代码更改为:
private void resetOdds() {
mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;
数组在Java中为零。
答案 2 :(得分:1)
private void resetOdds() {
mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;
}
开始索引为0.
答案 3 :(得分:1)
在Java中,数组索引从0开始。
因此,要访问第k个元素,需要给出数组(k-1)索引。
此外,如果您的数组大小为n,则表示您的索引从0运行到n-1。
最后,这解决了您的问题:
private void resetOdds() {
mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;
}
答案 4 :(得分:0)
数组基于0。尝试:
private void resetOdds() {
mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;
否则,当您去寻找" 4"时,由于没有第5个元素,您会收到错误。