如何解决错误“java.lang.ArrayIndexOutOfBoundsException:5”

时间:2013-08-16 01:21:14

标签: java arrays

我是编程新手,Java将是我的第一语言。我也在使用eclipse完成所有编码。

我一直在研究数组只是想了解它们。我找到了这个网站:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

我自己制作了第一个代码示例的变体:

package testArray;

public class TestArray
{
  public static void main(String[] args)
  {
     // Declare a new array of integers
     int[] anArray;

     // Sets the array length to 5
     anArray = new int[5];

     // Setting each array element
     anArray[0] = 1;
     anArray[1] = 2;
     anArray[2] = 3;
     anArray[3] = 4;
     anArray[5] = 5;

     // Displaying the value of each array element
     System.out.println("Element at index 0: " + anArray[0]);
     System.out.println("Element at index 0: " + anArray[1]);
     System.out.println("Element at index 0: " + anArray[2]);
     System.out.println("Element at index 0: " + anArray[3]);
     System.out.println("Element at index 0: " + anArray[4]);

  }
}

我一直在控制台中收到此错误:

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5     在testArray.TestArray.main(TestArray.java:15)

我也尝试过使用他们网站上的代码但收到同样的错误。是不是在eclipse中设置了什么?

非常感谢任何帮助!

注意:如果有人有一些对初学程序员有用的有用网站,请继续使用您的帖子添加它们!

4 个答案:

答案 0 :(得分:4)

问题在于:

 anArray[5] = 5;

将其替换为:

 anArray[4] = 5;

因为你已经定义了一个大小为5的数组,所以你只能使用0-4之间的索引:

 anArray = new int[5];

如果您尝试访问任何高于4的索引,您将遇到ArrayIndexOutOfBoundException。

答案 1 :(得分:2)

anArray[5] = 5;

实际访问第6个元素,该元素不存在,因为数组是基于0的。 new int[5]包含5个元素,编号为0,1,2,3和4.

所有索引都应小于数组长度。请改用anArray[4] = 5;

答案 2 :(得分:0)

Java中的数组基于0,您创建了一个大小为5的数组。

anArray [5] = 5;

。它超出了数组的范围,但看起来可能只是一个错字。

你可能想放

anArray [4] = 5;

答案 3 :(得分:0)

也许你想要

package testArray;

public class TestArray
{
  public static void main(String[] args)
  {
     // Declare a new array of integers
     int[] anArray;

     // Sets the array length to 5
     anArray = new int[5];

     // Setting each array element
     anArray[0] = 1;
     anArray[1] = 2;
     anArray[2] = 3;
     anArray[3] = 4;
     anArray[4] = 5;

     // Displaying the value of each array element
     System.out.println("Element at index 0: " + anArray[0]);
     System.out.println("Element at index 1: " + anArray[1]);
     System.out.println("Element at index 2: " + anArray[2]);
     System.out.println("Element at index 3: " + anArray[3]);
     System.out.println("Element at index 4: " + anArray[4]);

  }
}