繁体   English   中英

交换多维数组元素

[英]Swapping multi-dimensional array elements

我有一个多维数组,我有一个典型的交换函数,但该函数是否适用于任意数量的维度? 例如,

public void swap(int a, int b) {
    int temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
}

这适用于常规数组。 但我需要交换二维数组的两个索引。 我可以使用相同的函数但只是以不同的方式调用参数吗?

样本输入:

int[][] arr = {{1}, {2}, {3}};
System.out.println(arr[0][0]);

// I am confused on
// what these parameters should be
swap(arr, arr[0][0], arr[1][0]);

System.out.println(arr[0][0]);

示例输出:

1
2

是的,这是可能的,我建议将arr作为方法参数发送:

public static <T> void swap(T[] arr, int a, int b) {
    T temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
}
public static void main(String[] args) {
    int[][] a = {{1,2},{3,4}};
    swap(a,0,1);
    System.out.println(Arrays.deepToString(a));
}

在您的情况下, T解析为一维数组int[]

您可以将此函数与 4 个参数一起使用:

public static void swap(int [][]t,int a, int b,int c,int d) {
    int temp = t[a][b];
    t[a][b] = t[c][d];
    t[c][d] = temp;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM