java二维数组转置
‘壹’ java二维数组的转置
int a[][] = {{3, 7, 5}, {2, 6, 4}};
int b[][] = new int[3][2];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]);
b[j][i] = a[i][j];
}
}
‘贰’ 用java:利用二维数组,任意给出一个矩阵,编写实现矩阵转置的代码
借花献佛
/**
*实现二维数组的转置
*@authorHAN
*
*/
publicclasstransposition_Arrays2D_ch6_4{
finalstaticdoublePI=3.1415;
publicstaticvoidmain(String[]args){
/*StaticTestst1=newStaticTest();
StaticTestst2=newStaticTest();
st1.method2("HAN");*/
/*****定义要用于转置的二维数组*******/
intarr2D[][]={{1,2,3},{4,5,6},{7,8,9}};
/*****构造结果新二维数组用于存放转置结果*******/
/*定义结果数组变量,注意一定要先开辟一个内存,
否则只是地址传递,也就是说两个数组名实际上指向的是同一块内存*/
//而构造二维数组可以为维度来进行,不一定是一个矩阵,即每一行的长度不一定相同
intresult_arr[][]=newint[arr2D.length][];//先实现第一维
for(inti=0;i<arr2D.length;i++){//再实现第二维
result_arr[i]=newint[arr2D[i].length];
}
// intresult_arr[][]=Arrays.Of(arr2D,arr2D.length);
//上面这个命令行行不通!
/*****输出用于转置的二维数组*******/
for(intx[]:arr2D){
for(inte:x){
System.out.print(e+"");
}
System.out.println();
}
System.out.println();
/*******进行元素倒置******/
for(inti=0;i<arr2D.length;i++){
for(intj=0;j<arr2D[i].length;j++){
result_arr[j][i]=arr2D[i][j];//转置核心
}
}
/************/
for(intx[]:result_arr){
for(inte:x){
System.out.print(e+"");
}
System.out.println();
}
}
}
//importjava.util.Arrays;
//publicclasstransposition_Arrays2D{
//
// publicstaticvoidmain(String[]args){
// intarr2D[][]={{1,2,3},{4,5,6},{7,8,9}};
// /*定义结果数组变量,注意一定要先开辟一个内存,
// 否则只是地址传递,也就是说两个数组名实际上指向的是同一块内存*/
// intresult_arr[][]=newint[arr2D.length][];
// for(inti=0;i<arr2D.length;i++){
// result_arr[i]=newint[arr2D[i].length];
// }
//
////进行元素倒置
//for(inti=0;i<arr2D.length;i++){
// for(intj=0;j<arr2D[i].length;j++){
// result_arr[j][i]=arr2D[i][j];
// }
//}
//
////showtheresultinmatrix
//for(intx[]:result_arr){
// for(inte:x){
// System.out.print(e);
// }
// System.out.println();
//}
//
// }
//
//}
‘叁’ 如何用JAVA对3*4二维数组转置输出
public static void main(String[] args) {
int[][]arr = new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int[][]arr2 = new int[arr[0].length][arr.length];
showArr(arr);
System.out.println("--------------------------");
for (int i = 0; i < arr[0].length; i++) {
for (int j = 0; j < arr.length; j++) {
arr2[i][j] = arr[j][i];
}
}
showArr(arr2);
}
public static void showArr(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.print("\t" + arr[i][j]);
}
System.out.println();
}
}