二维数组的应用(一般二维数组、不规则二维数组、杨辉三角形)
一般二维数组的基本格式
package com.Summer_0425.cn; /** * @author summer * 二维数组的练习 * int[][],第一个括号表示行,第二个括号表示列 */ public class Test03 { //输出结果均为0,这里说明数组在未赋值前有默认初始值 //初始值:整数:0;小数:0.0;boolean:false;char:\u0000;引用类型:null public static void main(String[] args) { int [][] arr = new int[3][2]; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
不规则数组的格式:
package com.Summer_0425.cn; /** * @author Summer * 不规则二维数组的应用 */ public class Test04 { public static void main(String[] args) { int [][] arr = new int[3][]; System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); //输出值为null.说明一维数组不存在 //下面的方法给一维数组 各列 指定长度 arr[0] = new int[2]; arr[1] = new int[3]; arr[2] = new int[4]; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
不规则二维数组解决杨辉三角形问题
package com.Summer_0425.cn; /** * @author Summer * 用不规则二维数组的知识解决杨辉三角形问题 */ public class Test05 { public static void main(String[] args) { //首先申明一个不规则的二维数组 int [][] arr = new int[7][]; //对二维数组进行初始化,生成一个根据行数列数不断增加的二维数组 for (int i = 0; i < arr.length; i++) { arr[i] = new int[i+1]; } //循环遍历这个二维数组,行数为0,列数为0,或者行数和列数相等时,这个位置的数字为1 //三角中心的数字等于其上一行正上方数字和正上方前一个数字之和。 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { if (i == 0||j==0||i==j) { arr[i][j]=1; } else { arr[i][j]=arr[i-1][j]+arr[i-1][j-1]; } System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }