java 中的数组索引越界

Arrayindex out of bound in java

我无法弄清楚为什么我在这段代码中得到数组索引越界异常

class sample
{
  public static void main(String args[])
  {
    int a[]={1,2,3};
    int b[]=new int[10];
    for(int i=0;i<10;i++)
    {
      b[a[i]]=a[i]/*getting array out of bound exception*/
     }
  } 
 }

你的循环必须是:

for(int i = 0; i < a.length; i++) {
   if (a[i] < b.length) {
       b[a[i]] = a[i];
   }
}

因为您正在将 a 的值复制到 b,反之亦然。

a 的长度为 3,因此唯一有效的索引是 0,1 和 2。

因此当 i > 2 时 a[i] 超出范围。

数组a[]只包含3个元素,但是for循环迭代了10次。所以它引发了 ArrayIndexOutofBoundsException。 使用 : for(int i=0;i<3;i++) 或 for(int i=0;i