• 常见二维数组操作


    /**
     * 1)(使用输入值初始化数组)下面的循环使用用户输入值初始化数组:
     * 
     */
    public static void inputIntialize() {
    	int[][] matrix = new int[3][3];
    	Scanner input = new Scanner(System.in);
    	System.out.print("1)使用输入值初始化数组:");
    	for (int row = 0; row < matrix.length; row++) {
    		for (int column = 0; column < matrix[row].length; column++) {
    			matrix[row][column] = input.nextInt();
    		}
    	}
    	input.close();
    	System.out.println(Arrays.deepToString(matrix));
    }
    /**
     * 2)(使用随机值初始化数组)下面的循环使用0 到99 之间的随机值初始化数组:
     */
    public static void randomIntialize() {
    	int[][] matrix = new int[3][3];
    	System.out.print("2)使用随机数初始化数组:");
    	for (int row = 0; row < matrix.length; row++) {
    		for (int column = 0; column < matrix[row].length; column++) {
    			matrix[row][column] = (int) (Math.random() * 100);
    		}
    	}
    	System.out.println(Arrays.deepToString(matrix));
    }
    /**
     * 3)(打印数组)为打印一个二维数组,必须使用如下所示的循环打印数组中的每个元素:
     */
    public static void printMatrix() {
    	int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    	System.out.println("3)打印二维数组{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }:");
    	// 采用嵌套循环打印数组
    	for (int row = 0; row < matrix.length; row++) {
    		for (int column = 0; column < matrix[row].length; column++) {
    			System.out.print(matrix[row][column] + " ");
    		}
    		System.out.println();
    	}
    	// 采用Arrays.deepToString(Object[] a)打印数组
    	System.out.println(Arrays.deepToString(matrix));
    }
    /**
     * 4)(求所有元素的和)使用名为sum的变量存储和。将sum初始化为0。利用类似下面的循环,把数组中的每一个元素都加到sum上:
     */
    public static void sumMatrix() {
    	int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    	int sum = 0;
    	for (int row = 0; row < matrix.length; row++) {
    		for (int colum = 0; colum < matrix[row].length; colum++) {
    			sum += matrix[row][colum];
    		}
    	}
    	System.out.println("4)求二维数组{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }所有元素的和:" + sum);
    }
    /**
     * 5)(对数组按列求和)对于每一列,使用名为sum的变量存储它的和。利用类似下面的循环,将该列中的每个元素加到sum上:
     */
    public static void sumColumnMatrix() {
    	int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    	System.out.println("5)求二维数组{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }所有列元素的和:");
    	for (int column = 0; column < matrix[0].length; column++) {
    		int sum = 0;
    		for (int row = 0; row < matrix.length; row++) {
    			sum += matrix[row][column];
    		}
    		System.out.println(sum);
    	}
    }
    /**
     * 6)(哪一行的和最大?)使用变量maxRow和indexOfMaxRow分别跟踪和的最大值以及该行的索引值。
     * <P>
     * 计算每一行的和,如果计算出的新行的和更大,就更新maxRow和indexOfMaxRow。
     */
    public static void maxRow() {
    	int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    	System.out.println("6)计算二维数组{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }最大行的和以及该行的索引值:");
    	int maxRow = 0;
    	int indexOfMaxRow = 0;
    	// 计算第一行的和
    	for (int column = 0; column < matrix[0].length; column++) {
    		maxRow += matrix[0][column];
    	}
    	System.out.println(maxRow);
    	for (int row = 1; row < matrix.length; row++) {
    		int totalOfThisMax = 0;
    		for (int column = 0; column < matrix[row].length; column++) {
    			totalOfThisMax += matrix[row][column];
    		}
    		System.out.println(totalOfThisMax);
    		if (totalOfThisMax > maxRow) {
    			maxRow = totalOfThisMax;
    			indexOfMaxRow = row;
    		}
    	}
    	System.out.println("最大行的和的索引值:" + indexOfMaxRow + ",最大行的和:" + maxRow);
    }
    /**
     * 7)(随意打乱)对每个元素matrix[i][j], 随机产生下标i1和j1,然后互换matrix[i][j]和matrix[i1][j1], 如下所示:
     */
    public static void shuffleMatrix() {
    	int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    	for (int i = 0; i < matrix.length; i++) {
    		for (int j = 0; j < matrix[i].length; j++) {
    			int i1 = (int) (Math.random() * matrix.length);
    			int j1 = (int) (Math.random() * matrix[i].length);
    			// 用matrix[i1][j1]交换matrix[i][j]
    			int temp = matrix[i][j];
    			matrix[i][j] = matrix[i1][j1];
    			matrix[i1][j1] = temp;
    		}
    	}
    	System.out.println("7)随意打乱二维数组{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }:" + Arrays.deepToString(matrix));
    }
    
  • 相关阅读:
    20172314 2017-2018-2 《程序设计与数据结构》第七周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》第六周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》第5周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》实验报告一
    20172314 2017-2018-2 《程序设计与数据结构》 第三周学习总结
    20172314 2017-2018-2 《程序设计与数据结构》第一周学习总结
    预备作业03
    学号 2017-2018-20172309 《程序设计与数据结构》第3周学习总结
    # 学号 2017-2018-20172309 《程序设计与数据结构》实验1报告
    第二 周作业总结
  • 原文地址:https://www.cnblogs.com/echoing/p/8571876.html
Copyright © 2020-2023  润新知