基本Java?数组的参数?

基本Java?数组的参数?,java,arrays,Java,Arrays,所以我现在正在学习Java并尝试一个基本的程序。我想创建一个比旧数组大1的新数组,并使新数组的参数与旧数组的参数相同,而不是我想定义的最后一个参数。我当前的代码有什么问题?我在代码前面已经定义了q int p = c.length; p++; int[] d = new int[p]; for (int n=0; n<d.length-1; n++) { d[n] = c[n]; } d[d.length-1]=q; 非常适合我: public class ArrayEx {

所以我现在正在学习Java并尝试一个基本的程序。我想创建一个比旧数组大1的新数组,并使新数组的参数与旧数组的参数相同,而不是我想定义的最后一个参数。我当前的代码有什么问题?我在代码前面已经定义了q

int p = c.length;
p++;
int[] d = new int[p];
for (int n=0; n<d.length-1; n++)
{
    d[n] = c[n];
}
d[d.length-1]=q; 

非常适合我:

public class ArrayEx {
    public static void main(String[] args) {
        int[] arr1 = {10, 20, 30, 40, 50};
        int length1 = arr1.length;
        length1++;
        int[] arr2 = new int[length1];

        for (int i = 0; i < arr2.length - 1; i++) {
            arr2[i] = arr1[i];
        }

        arr2[arr2.length - 1] = 10;
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
    }
}

是什么让你觉得有什么不对?我得到了错误:java.lang.ArrayIndexOutOfBoundsException:1测试代码的原始数组的长度是多少?c是原始数组,d是新数组。c的长度比d小1。如果我运行这个代码,它对我来说工作得很好。你的代码没有问题。我猜你在别的地方出了点差错。很奇怪吗?因此,越界异常来自其他地方,即使错误在以下行:arr2[i]=arr1[i]?没有理由解释为什么代码会有错误。你试过运行我的代码吗?它非常基本,与您正在做的完全一样,编译和运行都很好。是的,我尝试运行完整的代码并获得上面提到的错误?
10
20
30
40
50
10