JAVA实现二维数组的转置


JAVA实现二维数组的转置

  1. /** 
  2.  * 实现二维数组的转置 
  3.  * @author HAN 
  4.  * 
  5.  */  
  6. public class transposition_Arrays2D_ch6_4 {  
  7.   
  8.     final static double PI=3.1415;  
  9.     public static void main(String[] args) {  
  10.         /*StaticTest st1=new StaticTest(); 
  11.         StaticTest st2=new StaticTest(); 
  12.         st1.method2("HAN");*/  
  13.           
  14.         /*****定义要用于转置的二维数组*******/  
  15.         int arr2D[][]={{1,2,3},{4,5,6},{7,8,9}};  
  16.           
  17.         /*****构造结果新二维数组用于存放转置结果*******/  
  18.         /*定义结果数组变量,注意 一定要先开辟一个内存, 
  19.         否则只是地址传递,也就是说两个数组名实际上指向的是同一块内存*/  
  20.         //而构造二维数组可以为维度来进行,不一定是一个矩阵,即每一行的长度不一定相同   
  21.         int result_arr[][]=new int[arr2D.length][];//先实现第一维   
  22.         for(int i=0 ; i<arr2D.length;i++){ //再实现第二维   
  23.             result_arr[i]=new int[arr2D[i].length];  
  24.         }  
  25.           
  26. //      int result_arr[][]=Arrays.copyOf(arr2D, arr2D.length);   
  27.         //上面这个命令行行不通!   
  28.         /*****输出用于转置的二维数组*******/  
  29.         for (int x[]:arr2D){  
  30.             for(int e:x){  
  31.                 System.out.print(e+" ");  
  32.             }  
  33.             System.out.println();  
  34.         }  
  35.         System.out.println();  
  36.           
  37.         /*******进行元素倒置******/  
  38.         for(int i=0 ; i<arr2D.length;i++){  
  39.             for(int j=0; j<arr2D[i].length;j++){  
  40.                 result_arr[j][i]=arr2D[i][j]; //转置核心   
  41.             }     
  42.         }  
  43.           
  44.         /*****show the result in the result matrix*******/  
  45.         for (int x[]:result_arr){  
  46.             for(int e:x){  
  47.                 System.out.print(e+" ");  
  48.             }  
  49.             System.out.println();  
  50.         }  
  51.           
  52.     }  
  53.   
  54. }  
  55.   
  56.   
  57. //import java.util.Arrays;   
  58. //public class transposition_Arrays2D {   
  59. //   
  60. //  public static void main(String[] args) {   
  61. //      int arr2D[][]={{1,2,3},{4,5,6},{7,8,9}};   
  62. //      /*定义结果数组变量,注意 一定要先开辟一个内存,   
  63. //      否则只是地址传递,也就是说两个数组名实际上指向的是同一块内存*/   
  64. //      int result_arr[][]=new int[arr2D.length][];   
  65. //      for(int i=0 ; i<arr2D.length;i++){   
  66. //          result_arr[i]=new int[arr2D[i].length];   
  67. //      }   
  68. //         
  69. //        // 进行元素倒置   
  70. //        for(int i=0 ; i<arr2D.length;i++){   
  71. //          for(int j=0; j<arr2D[i].length;j++){   
  72. //              result_arr[j][i]=arr2D[i][j];   
  73. //          }      
  74. //        }   
  75. //           
  76. //        // show the result in matrix   
  77. //        for (int x[]:result_arr){   
  78. //          for(int e:x){   
  79. //              System.out.print(e);   
  80. //          }   
  81. //          System.out.println();   
  82. //        }   
  83. //           
  84. //  }   
  85. //   
  86. //}  

相关内容