下面我来详细讲解“Java编程实现的二维数组转置功能示例”的完整攻略。
什么是二维数组转置?
二维数组转置就是将原本按行存储的二维数组,按列存储重新排列的过程。例如,原先的二维数组表示为:
1 2 3
4 5 6
经过转置之后,变成了:
1 4
2 5
3 6
实现二维数组转置的方法
实现二维数组转置的方法有很多种,本篇文章主要介绍两种方式:
方法一:使用一个新数组(常用)
- 建立一个新的二维数组,它的行列数与原始二维数组相反。
- 遍历原始二维数组,将原始数组的第i行第j个元素转换为新的数组的第j行第i个元素。
- 返回新的二维数组作为转置后的结果值。
示例代码:
public static int[][] transpose(int[][] matrix) {
// 获取矩阵的行数和列数
int m = matrix.length;
int n = matrix[0].length;
// 建立一个新的二维数组,行数为列数,列数为行数
int[][] ans = new int[n][m];
// 遍历原数组,将原数组的第i行第j个元素转化为新数组的j行第i个元素
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
ans[j][i] = matrix[i][j];
}
}
// 返回新建的二维数组
return ans;
}
方法二:在原始数组上进行转置(空间优化)
- 遍历原始二维数组,交换每个元素与它对称位置上的元素。
- 返回原始数组作为转置后的结果值。
示例代码:
public static int[][] transpose(int[][] matrix) {
// 获取矩阵的行数和列数
int m = matrix.length;
int n = matrix[0].length;
// 遍历原数组,交换每个元素与它的对称位置上的元素
for (int i = 0; i < m; i++) {
for (int j = i; j < n; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 返回原始数组
return matrix;
}
示例说明
示例一
假设输入一个二维数组:
1 2 3
4 5 6
调用上述代码中的transpose()方法,可以得到二维数组经转置后的结果:
1 4
2 5
3 6
示例二
假设输入一个二维数组:
7 4
5 6
8 3
调用上述代码中的transpose()方法,可以得到二维数组经转置后的结果:
7 5 8
4 6 3
以上就是使用Java实现二维数组转置功能的两种方法,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java编程实现的二维数组转置功能示例 - Python技术站