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.  */ 

 

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