导致java.lang.ArrayIndexOutOfBoundsException的原因是什么以及如何阻止它?


导致java.lang.ArrayIndexOutOfBoundsException的原因是什么以及如何阻止它?

例如:

int[] array = new int[5];
int boom = array[10]; // Throws the exception

至于如何避免......嗯,不要这样做。小心你的数组索引。

人们有时遇到的一个问题是认为数组是1索引的,例如

int[] array = new int[5];
// ... populate the array here ...
for (int index = 1; index <= array.length; index++)
{
    System.out.println(array[index]);
}

这将错过第一个元素(索引0)并在索引为5时抛出异常。此处的有效索引为0-4(含)。这里正确的惯用语for是:

for (int index = 0; index < array.length; index++)

(当然,假设您需要索引。如果您可以使用增强型for循环,请执行此操作。)