我正在编写音乐演示的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}};
请建议我一些简单的解决方案。
答案 0 :(得分:0)
使用Collections.reverse来反转列表中元素的顺序。当您需要反转外部数组中的每个数组时,您需要使用for循环遍历内部数组。
注意:为此,您需要使用ArrayList而不是数组。您可以使用Arrays.asList(array)
将数组转换为ArrayList。
在实践中:
List<Integer> list = Arrays.asList(a); //Where a is your original array
for (List<Integer> sublist : list)
Collections.reverse(sublist);
现在列表包含您的反向子列表。
答案 1 :(得分:0)
如果你真的需要double[][]
作为一种类型,请加入Ad Fundum的答案,试试这个:
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]);
答案 2 :(得分:0)
试试这个:
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)];
}
}
答案 3 :(得分:0)
如果您不想使用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));