针对"java实现二维数组转置的方法示例",我为您提供完整攻略如下:
一、题目分析
二维数组转置是将行和列的位置互换,即行变为列,列变为行,其基本原理是通过两层循环,依次交换每一个元素。
二、Java实现方法
Java实现二维数组转置可以按以下步骤进行:
1.定义原始的二维数组:
我们先定义原始的二维数组,一般可以通过随机生成数或者手动初始化等方法来实现。
int[][] originalArray = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
2.定义结果数组
为了存储转置后的结果,我们需要定义一个新的二维结果数组,使用与原始数组的列和行相反的大小。
int[][] resultArray = new int[originalArray[0].length][originalArray.length];
3.执行转置操作
依据转置的原理,我们双层循环遍历原始数组,将每一行对应的列,作为转置后数组的行。
for (int i = 0; i < originalArray.length; i++) {
for (int j = 0; j < originalArray[0].length; j++) {
resultArray[j][i] = originalArray[i][j];
}
}
4.输出结果
我们通过双层循环转置原始数组后,再输出转置后的结果数组。
for (int i = 0; i < resultArray.length; i++) {
for (int j = 0; j < resultArray[0].length; j++) {
System.out.print(resultArray[i][j] + "\t");
}
System.out.println();
}
三、实例演示
下面给出两个示例说明:
示例1:手动输入原始数据
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入二维数组的行列数:");
int row = sc.nextInt();
int col = sc.nextInt();
int[][] originalArray = new int[row][col];
System.out.println("请输入数组元素:");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
originalArray[i][j] = sc.nextInt();
}
}
System.out.println("\n原始数组为:");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
System.out.print(originalArray[i][j] + "\t");
}
System.out.println();
}
int[][] resultArray = new int[originalArray[0].length][originalArray.length];
for (int i = 0; i < originalArray.length; i++) {
for (int j = 0; j < originalArray[0].length; j++) {
resultArray[j][i] = originalArray[i][j];
}
}
System.out.println("\n转置后的数组为:");
for (int i = 0; i < resultArray.length; i++) {
for (int j = 0; j < resultArray[0].length; j++) {
System.out.print(resultArray[i][j] + "\t");
}
System.out.println();
}
}
}
示例1运行结果:
请输入二维数组的行列数:
3 3
请输入数组元素:
1 2 3
4 5 6
7 8 9
原始数组为:
1 2 3
4 5 6
7 8 9
转置后的数组为:
1 4 7
2 5 8
3 6 9
示例2:随机生成原始数据
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[][] originalArray = new int[3][4];
Random r = new Random();
System.out.println("原始数组为:");
for (int i = 0; i < originalArray.length; i++) {
for (int j = 0; j < originalArray[0].length; j++) {
originalArray[i][j] = r.nextInt(50);
System.out.print(originalArray[i][j] + "\t");
}
System.out.println();
}
int[][] resultArray = new int[originalArray[0].length][originalArray.length];
for (int i = 0; i < originalArray.length; i++) {
for (int j = 0; j < originalArray[0].length; j++) {
resultArray[j][i] = originalArray[i][j];
}
}
System.out.println("\n转置后的数组为:");
for (int i = 0; i < resultArray.length; i++) {
for (int j = 0; j < resultArray[0].length; j++) {
System.out.print(resultArray[i][j] + "\t");
}
System.out.println();
}
}
}
示例2运行结果:
原始数组为:
33 31 36 23
29 26 13 6
44 26 41 5
转置后的数组为:
33 29 44
31 26 26
36 13 41
23 6 5
四、总结
以上就是Java实现二维数组转置的方法,通过将原始数组的行列位置互换,遍历转置后的二维数组。代码可以运用于图片颜色矩阵的计算,或对比度,锐度等方面,有着广泛的应用场景。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现二维数组转置的方法示例 - Python技术站