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