Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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 展平锯齿状二维阵列_Java - Fatal编程技术网

Java 展平锯齿状二维阵列

Java 展平锯齿状二维阵列,java,Java,我有一个任务,要求我将二维数组展平为单个数组 以下是我目前掌握的情况: public static int[] flatenArray(int [][] a){ //TODO int length = 0; for(int y = 0; y < a.length; y++){ length += a[y].length; } int[] neu = new int[length]; int x = 0; for

我有一个任务,要求我将二维数组展平为单个数组

以下是我目前掌握的情况:

public static int[] flatenArray(int [][] a){
    //TODO
    int length = 0;

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

    int[] neu = new int[length];

    int x = 0;
    for (int i = 0; i < a.length; i++){
        for(int j = 0; j < a[0].length; j++){
            neu[x] = a[i][j];
            x++;
        }
    }
    return neu;
}
我得到以下错误:

数组在元素[9]处不同;预料之中,但事实并非如此


不知何故,当第三个“内部数组”的数组长度超过3时,最后2个数字(“10,11”)不会被复制到新数组中。

有多种方法可以解决这个问题,但归根结底都是你计算错误


新int[1]
中,第一个元素是索引0。在由1个元素组成的数组中,
.length
将返回
1
,但不会有
数组[1]
。这就是为什么您缺少1的计数。

a[0]。长度
-->
a[i]。长度
。投票结束是一个输入错误。@dasblinkenlight谢谢伙计!这就解决了:)一定是错过了!
assertArrayEquals(new int[] {1,2,3,4,5,6,7,8,9,10,11},Ass06.flatenArray(new int[][] {{1,2,3},{4,5,6},{7,8,9,10,11}}));