Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Reverse - Fatal编程技术网

如何反转二维java数组?

如何反转二维java数组?,java,arrays,reverse,Java,Arrays,Reverse,我正在为一个音乐演示编写java代码,其中 我有一个java数组: int[][] a = {{1,2,3,},{4,5,6},{7,8,9},{10,11,12}; 我想反转这个数组以得到这个形状: int[][] b = {{3,2,1},{6,5,4},{9,8,7},{12,11,10}}; 请为我推荐一些简单的解决方案。用于颠倒列表中元素的顺序。由于需要反转外部数组中的每个数组,因此需要使用for循环迭代内部数组 注意:为此,需要使用ArrayList而不是arrays。您可以使

我正在为一个音乐演示编写java代码,其中 我有一个java数组:

int[][] a = {{1,2,3,},{4,5,6},{7,8,9},{10,11,12};
我想反转这个数组以得到这个形状:

int[][] b = {{3,2,1},{6,5,4},{9,8,7},{12,11,10}}; 
请为我推荐一些简单的解决方案。

用于颠倒列表中元素的顺序。由于需要反转外部数组中的每个数组,因此需要使用for循环迭代内部数组

注意:为此,需要使用ArrayList而不是arrays。您可以使用
Arrays.asList(array)
将数组转换为ArrayList

实际上:

List<Integer> list = Arrays.asList(a); //Where a is your original array
for (List<Integer> sublist : list)
  Collections.reverse(sublist);
List List=Arrays.asList(a)//其中a是原始数组
for(列表子列表:列表)
集合。反向(子列表);

现在列表包含了您的反向子列表。

添加到Ad Fundum的答案中,如果您确实需要使用
double[][]
作为类型,请尝试以下操作:

double[] reverse(double[] a)
{
List<Integer> list = Arrays.asList(a); //Where a is your original array
for (List<Integer> sublist : list)
  Collections.reverse(sublist);
return list.toArray(new Double[a.length]);
}

for(int i=0; i<a.length; i++)
   b[i] = reverse(a[i]);
double[]反向(double[]a)
{
List=Arrays.asList(a);//其中a是原始数组
for(列表子列表:列表)
集合。反向(子列表);
返回列表。toArray(新的双精度[a.长度]);
}
对于(int i=0;i请尝试以下方法:

int[][] a = {{1,2,3,},{4,5,6},{7,8,9},{10,11,12}};
int[][] b = new int[a.length][];

for(int i = 0; i < a.length; i++) {
    for(int j = 0; j < a[i].length; j++) {
        b[i][j] = a[i][a[i].length - (j + 1)];
    }
}
int[]a={{1,2,3,},{4,5,6},{7,8,9},{10,11,12};
int[][]b=新的int[a.长度][];
for(int i=0;i
如果您不想使用Collections.reverse(),以下是手动操作的方法:

    int[][] a = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
    int[][] ar = new int[a.length][];
    int len, index;
    for (int i=0; i < a.length; i++) {
        len = a[i].length;
        ar[i] = new int[len];
        index = len-1;
        for (int j=0; j < len; j++) {
            ar[i][j] = a[i][index];
            index--;
        }
    }
    System.out.println(Arrays.deepToString(a));
    System.out.println(Arrays.deepToString(ar));
int[]a={1,2,3},{4,5,6},{7,8,9},{10,11,12};
int[][]ar=新int[a.length][];
int-len,索引;
for(int i=0;i
您很难“反转二维数组”。这更像是反转二维数组中包含的每个一维数组。如果你是手工操作,你会如何解决这一问题?如果你在白板或纸上做一些小例子,就更容易对这类事情进行推理。在循环中遍历所有数组并反转它们听起来足够简单吗?你必须展示你所拥有的尝试过了,我们将尝试帮助您,但不仅仅是给您一个解决方案。您给出了一个很好的解决方案,它确实有效,问题也解决了。使用此代码,我面临java.lang.NullPointerException的问题。如何解决它?我在迭代前一秒错过了一行:b[I]=new int[a[I].length];