- package com.kk.array;
- /**
- * 說明:二維數組元素操作
- *
- * @author kk
- *
- */
- public class Array2ArrayTest {
- public static void main(String[] args) {
- int[][] array2array = {
- { 1, 2, 3 },
- { 2, 2, 3 },
- { 1, 2, 3 },
- { 1, 1 } };
- System.out.println("原二維數組");
- printArray2Array(array2array);
- System.out.println("備份二維數組");
- int[][] arr = new int[array2array.length][];// 備份數組
- System.arraycopy(array2array, 0, arr, 0, arr.length);
- printArray2Array(arr);
- System.out.println("二維數組相同列值相加");
- addColValueForArray2Array(array2array);
- printAddColValueForArray2Array(array2array);
- }
- /**
- * 將二維數組每一列的所有值相加,並保存到第一行一維數組array[0][...]中;
- * 注意:如果二維數組中存在列數不等的一維數組時,且第一行一維數組的維數並非所有一維數組最大列數,
- * 那麼碰到一維數組大於保存一維數組的維數時,那超出的列的元素將不會被做相加.
- *
- * 如:將二維數組初始化爲:
- * int[][] array2array = {
- * { 1 },
- * { 2, 2, 3 },
- * { 1, 2, 3 },
- * { 1, 1 }
- * }
- * 輸出結果就僅有一列,且值爲 5(1+2+1+1),可以看代碼末尾輸出結果(二)
- *
- * @param arr2arr
- */
- static void addColValueForArray2Array(int[][] arr2arr) {
- for (int col = 0; col < arr2arr[0].length; col++)
- for (int row = 1; row < arr2arr.length && col < arr2arr[row].length; row++)
- arr2arr[0][col] += arr2arr[row][col];
- }
- /**
- * 打印二位數組
- *
- * @param arr2arr
- */
- static void printArray2Array(int[][] arr2arr) {
- for (int row = 0; row < arr2arr.length; row++) {
- for (int col = 0; col < arr2arr[row].length; col++) {
- System.out.print(arr2arr[row][col] + " ");
- }
- System.out.println();
- }
- }
- /**
- * 打印二維數組的運算後的結果.這裏將結果保存到二維數組的第一行,即第一個一維數組中.
- *
- * @param arr2arr
- */
- static void printAddColValueForArray2Array(int[][] arr2arr) {
- for (int col = 0; col < arr2arr[0].length; col++)
- System.out.print(arr2arr[0][col] + " ");
- }
- /**-------一---------
- 原二維數組
- 1 2 3
- 2 2 3
- 1 2 3
- 1 1
- 備份二維數組
- 1 2 3
- 2 2 3
- 1 2 3
- 1 1
- 二維數組相同列值相加
- 5 7 9
- -----------二-------------
- 原二維數組
- 1
- 2 2 3
- 1 2 3
- 1 1
- 備份二維數組
- 1
- 2 2 3
- 1 2 3
- 1 1
- 二維數組相同列值相加
- 5
- */
- }