Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ArrayIndexOutOfBounds异常_Java - Fatal编程技术网

java.lang.ArrayIndexOutOfBounds异常

java.lang.ArrayIndexOutOfBounds异常,java,Java,有人能帮我做作业吗?基本上,我试图创建的程序要求用户输入一个整数N,然后对于两个单独的N个整数集,这些整数集存储在两个单独的数组(x和y)中,然后调用一个函数mixReverse(a,b),并将x和y作为参数。mixReverse(x,y)函数反转y数组中元素的顺序,然后将每个数组的元素交错到一个最终数组中,以便finalArray由arr1[0]、arr2[arr2.length-1]、arr1[1]、arr2[arr2.length-2]、。。。arr1[arr1.length-1],arr

有人能帮我做作业吗?基本上,我试图创建的程序要求用户输入一个整数
N
,然后对于两个单独的N个整数集,这些整数集存储在两个单独的数组(x和y)中,然后调用一个函数
mixReverse(a,b)
,并将
x
y
作为参数。
mixReverse(x,y)
函数反转y数组中元素的顺序,然后将每个数组的元素交错到一个最终数组中,以便
finalArray
由arr1[0]、arr2[arr2.length-1]、arr1[1]、arr2[arr2.length-2]、。。。arr1[arr1.length-1],arr2[0]

我已经尝试过这个代码,但它有问题:

finalArray[0] = arr1[0];
    finalArray[1] = arr1[0];
    for (int j=2; j<(2*arr1.length); j++) {
        if (j%2==0) {
            finalArray[j] = arr1[j/2];
        }

        else {
            finalArray[j] = arr2[(((j+1)*(2))-1)];
        }
    }
finalArray[0]=arr1[0];
finalArray[1]=arr1[0];
对于(int j=2;j我会这样做(没有%2和if语句的不可读混乱)

int[]finalArray=newint[2*N];
对于(int i=0;i
我会这样做(没有%2和if语句的不可读混乱)

int[]finalArray=newint[2*N];
对于(int i=0;i
此行:

finalArray[j] = arr2[(((j+1)*(2))-1)];
看起来可疑。您使用的是arr2的项目7、11、15、e.t.c.,我认为这不是您想要的。

此行:

finalArray[j] = arr2[(((j+1)*(2))-1)];

看起来可疑。您正在使用arr2的项目7、11、15、e.t.c.,我认为这不是您想要的。

如果arr1的长度与arr2的长度相同,那么这部分就是问题所在:

arr2[(((j+1)*(2))-1)];

但是scibuff已经写了一个很好的答案。

如果arr1的长度与arr2相同,那么这部分就是问题所在:

arr2[(((j+1)*(2))-1)];

但是scibuff已经写了一个很好的答案。

上面失败的输入是什么?finalArray
在哪里初始化?“那么数组的长度是2*(arr1.length)”。哪个数组的长度?确定错误行吗?确定每个数组的长度吗?设置数组的代码在哪里?是否尝试使用调试器?是否尝试使用输出语句(
System.out.println
或类似语句)要验证在执行过程中的各个点上的情况是否与您认为的一样?您是否尝试过任何方法?将代码段更改为一个简短但完整的程序来演示问题将非常有帮助…您能否显示
finalArray
?可能您无意中创建的代码太小了。inp是什么ut在上述故障中?finalArray
在哪里初始化?“那么数组的长度是2*(arr1.length)”。哪个数组的长度?确定错误行吗?确定每个数组的长度吗?设置数组的代码在哪里?是否尝试使用调试器?是否尝试使用输出语句(
System.out.println
或类似)要验证在执行过程中的各个点上的情况是否与您认为的一样?您是否尝试过任何方法?将代码片段更改为一个简短但完整的程序,以演示问题将非常有用…您能否显示
finalArray
?可能您无意中创建的代码太小了。谢谢,这非常有用更干净,我甚至没有想过这样做。谢谢你,这更干净,我甚至没有想过这样做。