Java 带数组的索引自动边界

Java 带数组的索引自动边界,java,android,Java,Android,每次我尝试运行此方法时 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 }

每次我尝试运行此方法时

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开始:

mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;

将代码更改为:

private void resetOdds() {

mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;
数组在Java中是基于零的

private void resetOdds() {

mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;

}
private void resetOdds() {

mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;

}

以0开始索引。

数组基于0。尝试:

private void resetOdds() {

mOdds[0] = 0.10;
mOdds[1] = 0.25;
mOdds[2] = 0.35;
mOdds[3] = 0.30;

否则,当您查找4时,由于没有第5个元素,因此会出现错误。

在Java中,数组索引从0开始

因此,要访问第k个元素,需要给出数组的k-1th索引

此外,如果数组大小为n,则意味着您的索引从0运行到n-1

最后,这解决了您的问题: