繁体   English   中英

具有数组的IndexOutOfBounds

[英]IndexOutOfBounds with array

每次我尝试运行此方法

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;

}

从0开始索引。

在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;

}

数组基于0。 尝试:

private void resetOdds() {

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM