Java基础之二维数组

二维数组的定义
简单地说,二维数组就是在数组中又存储了数组,即数组的元素也是数组。
二维数组的创建
和数组一样,二维数组的创建也有动态和静态之分。
1.动态创建

数据类型[][] 数组名 = new 数据类型[m][n];
//例如
int [][] nums1 = new int[3][2]
数据类型 数组名 [][]  = new 数据类型[m][n];
//例如
int [nums2 [][] = new int[3][2]
数据类型 [] 数组名[] = new 数据类型[m][n];
//例如
int [] nums3[] = new int[3][2]

注:若想动态创建的时候,使得二维数组里面的数组长度不同,在创建时,不要写n的值

//例如
    int [][]nums = new int[2][];
	nums[0] = new int[3];
	nums[1] = new int[4];

这样就实现了,数组长度不同;

2.静态创建

数据类型 [][] 数组名 = {{1,值2..},{1,值2..},{1,值2..}};
//例如
int [][] nums = {{1,2},{3,45,4},{12,3}};

二维数组的存值和取值
存值

数组名[下标1][下标2] =;
nums [0][1] = 12;

取值

数据类型 变量名 = 数组名[下标1][下标2]int i = nums[1][3]

二维数组的长度
二维数组的长度和数组一致

数组名.length
nums.length

二维数组内某个数组的长度

数组名[下标].length;
nums[5].length;

二维数组的遍历
寻用两层循环,遍历二维数组内里的每一个数组

	int [][]nums = new int[3][5];
	for(int i=0;i<nums.length;i++){
		for(int j=0;j<nums[i].length;j++){
			System.out.print(nums[i][j]+" ");
		}
		System.out.println();
	}

杨辉三角

直角杨辉三角

public static void zYangHui() {
		//定义二维数组
		int nums[][] = new int[5][5];
		//直角杨辉三角
		for(int i=0;i<nums.length;i++) {
			//到j==i就结束,不管后面的值
			for(int j=0;j<=i;j++) {
				//找规律
				//第一例和每一行数和列数相等的为1
				if(j==0||j==i) {
					nums[i][j]=1;
				}else {
					//其他的为上面一行的两数相加
					nums[i][j] = nums[i-1][j-1]+nums[i-1][j];
				}
				//输出
				System.out.print(nums[i][j]+" ");
			}
			//换行
			System.out.println();
		}
	}

在这里插入图片描述
等腰杨辉三角

public static void dYangHui() {
		int nums[][] = new int[5][5];
		//先创建一个直角杨辉三角
		for(int i=0;i<nums.length;i++) {
			for(int j=0;j<=i;j++) {
				if(j==0||j==i) {
					nums[i][j]=1;
				}else {
					nums[i][j] = nums[i-1][j-1]+nums[i-1][j];
				}
				System.out.print(nums[i][j]+" ");
			}
			System.out.println();
		}
		//做等腰处理,我们发现等腰杨辉三角就是在直角杨辉三角的基础上加了空格
		//且空格的个数也有规律,所以在输出前,输出空格
		for(int i=0;i<nums.length;i++) {
			for(int k=0;k<nums.length-i-1;k++) {
				System.out.print(" ");
			}
			for(int j=0;j<=i;j++) {
				System.out.print(nums[i][j]+" ");
			}
			System.out.println();
		}
	}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43336579/article/details/107811570