Java 二維數組複製+行列元素操作

 

  1. package com.kk.array;  
  2.  
  3. /**  
  4.  * 說明:二維數組元素操作  
  5.  *   
  6.  * @author kk  
  7.  *   
  8.  */ 
  9. public class Array2ArrayTest {  
  10.       
  11.     public static void main(String[] args) {  
  12.         int[][] array2array = {   
  13.                 { 123 },   
  14.                 { 223 },   
  15.                 { 123 },   
  16.                 { 11 } };  
  17.           
  18.         System.out.println("原二維數組");  
  19.         printArray2Array(array2array);  
  20.  
  21.         System.out.println("備份二維數組");         
  22.         int[][] arr = new int[array2array.length][];// 備份數組  
  23.         System.arraycopy(array2array, 0, arr, 0, arr.length);  
  24.         printArray2Array(arr);  
  25.  
  26.         System.out.println("二維數組相同列值相加");  
  27.         addColValueForArray2Array(array2array);  
  28.         printAddColValueForArray2Array(array2array);  
  29.     }  
  30.  
  31.     /**  
  32.      * 將二維數組每一列的所有值相加,並保存到第一行一維數組array[0][...]中;  
  33.      * 注意:如果二維數組中存在列數不等的一維數組時,且第一行一維數組的維數並非所有一維數組最大列數,  
  34.      * 那麼碰到一維數組大於保存一維數組的維數時,那超出的列的元素將不會被做相加.  
  35.      *   
  36.      * 如:將二維數組初始化爲:  
  37.      * int[][] array2array = {   
  38.      *      { 1 },   
  39.      *      { 2, 2, 3 },   
  40.      *      { 1, 2, 3 },   
  41.      *      { 1, 1 }   
  42.      *  }  
  43.      * 輸出結果就僅有一列,且值爲 5(1+2+1+1),可以看代碼末尾輸出結果(二)  
  44.      *   
  45.      * @param arr2arr  
  46.      */ 
  47.     static void addColValueForArray2Array(int[][] arr2arr) {  
  48.         for (int col = 0; col < arr2arr[0].length; col++)  
  49.             for (int row = 1; row < arr2arr.length && col < arr2arr[row].length; row++)  
  50.                 arr2arr[0][col] += arr2arr[row][col];  
  51.     }  
  52.  
  53.     /**  
  54.      * 打印二位數組  
  55.      *   
  56.      * @param arr2arr  
  57.      */ 
  58.     static void printArray2Array(int[][] arr2arr) {  
  59.         for (int row = 0; row < arr2arr.length; row++) {  
  60.             for (int col = 0; col < arr2arr[row].length; col++) {  
  61.                 System.out.print(arr2arr[row][col] + " ");  
  62.             }  
  63.             System.out.println();  
  64.         }  
  65.     }  
  66.  
  67.     /**  
  68.      * 打印二維數組的運算後的結果.這裏將結果保存到二維數組的第一行,即第一個一維數組中.  
  69.      *   
  70.      * @param arr2arr  
  71.      */ 
  72.     static void printAddColValueForArray2Array(int[][] arr2arr) {  
  73.         for (int col = 0; col < arr2arr[0].length; col++)  
  74.             System.out.print(arr2arr[0][col] + " ");  
  75.     }  
  76. /**-------一---------  
  77. 原二維數組  
  78. 1 2 3   
  79. 2 2 3   
  80. 1 2 3   
  81. 1 1   
  82. 備份二維數組  
  83. 1 2 3   
  84. 2 2 3   
  85. 1 2 3   
  86. 1 1   
  87. 二維數組相同列值相加  
  88. 5 7 9  
  89. -----------二-------------  
  90. 原二維數組  
  91.  
  92. 2 2 3   
  93. 1 2 3   
  94. 1 1   
  95. 備份二維數組  
  96.  
  97. 2 2 3   
  98. 1 2 3   
  99. 1 1   
  100. 二維數組相同列值相加  
  101. 5     
  102.  */ 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章