java.lang.ArrayIndexOutOfBoundsException是什么意思?

时间:2013-04-18 03:27:16

标签: java arrays

我是java新手,今天我开始研究数组而且我迷路了。我试图在数组中放入一些值,但我收到错误java.lang.ArrayIndexOutOfBoundsException

这是我到目前为止所做的。

      int n=6; 
      int[]A= new int [1];

      for(i=0;i<n;i++){
          A[i]=keyboard.nextInt();
      } 

7 个答案:

答案 0 :(得分:3)

java.lang.ArrayIndexOutOfBoundsException意味着您正在尝试访问不存在的数组索引。

问题是你的数组大小为一。但是,你经历了六次这个循环。您可以使n等于1,或者增加数组的大小。

答案 1 :(得分:1)

问题是你的数组的大小是一个。您可以在数组声明的括号之间设置数组的大小。

你的for循环进行了6次。您可以将数组的大小更改为6。

int n = 6;

  int[]A= new int [6];

for(i=0;i<=n;i++)
   {
      A[i]=keyboard.nextInt();

   } 

答案 2 :(得分:0)

这意味着什么。您正在尝试访问已定义的数组边界之外的元素。

你的阵列     new int [1]; 只会持有一个元素。 我认为你的意思是int [n];

答案 3 :(得分:0)

您正在尝试访问您无权访问的内存。您的数组声明大小为1,并且您设置n = 6.因此,遍历数组A,您正在尝试访问尚未声明的数组的5个虚构位置。因此,数组索引超出范围。

你可能想要的是:

  int n=6;

      int[]A= new int [n];

    for(i=0;i<n;i++)
   {
      A[i]=keyboard.nextInt();

   }

答案 4 :(得分:0)

这里你已经声明了数组的大小为1,但是你要遍历数组6次。

在你的for循环中你应该写

for (int i=0; i< A.length; i++ ){

  A[i]=keyboard.nextInt();
}

所以在这种情况下,你的循环只会遍历一次。

答案 5 :(得分:0)

java.lang.ArrayIndexOutOfBoundsException表示您正在尝试访问不存在的数组索引。例如,你有一个数组

        int []array=new int[3];

如果您尝试访问数组[4],它将为您提供ArrayIndexOutOfBoundsException。 最重要的是,只要您访问数组OUT OF ITS BOUND就会得到此异常。

:d

答案 6 :(得分:0)

每当您收到错误时,请务必先查看其API。例如,here是ArrayIndexOutOfBoundException的文档。

在您的代码中,您通过说new int [1]来创建大小为1的数组,现在当您遍历数组并检查A[1]的值时,您正在尝试访问数组的第二个元素,因为数组索引从0开始甚至不存在。因此,您正在访问的索引是超出界限