JAVA二维数组的应用 - 朱岩松博客

朱岩松博客

记录
点滴生活
首页>> 学习笔记 >>JAVA二维数组的应用 - 朱岩松博客

导论

二维数组是一种常见的数据储存结构。JAVA中的二维数组允许不规则。

 二维数组其实就是一维数组中装了一个数组
比如:  {{1,2,3},{4,5,6},{7,8,9}}

这就是一个标准的二维数组。

它的[0][0]的值是1,它的[2][2]的值是9

二维数组的定义方法是

int array[][]=new int[3][3]; //定义一个3*3的二维数组 需要通过new


int twoarray[][] = {{1,2,3},{4,5,6},{7,8,9}};

且定义多维数组不必指定每一维的大小,只需指定最左边维度的大小即可。这也就是说,java的二维数组允许是不规则的。
int array3[][]=new int[3][];

int array2[][]= {{1,2,3},{4,5,6,7},{8,9}};

这便是一个不规则的二维数组

ae78da0b1ff00a0ab092d2d7d5f90669.jpeg

在我们知道二维数组的定义方法后,我们则需要知道二维数组的用法。


二维数组的赋值和取值

一维数组的赋值是通过 ArrayName[下标]进行赋值

而二维数组与之相同,ArrayName[下标][下标],需要注意的是,二维数组和一维数组一样,每一维度的下标都是从0开始的!

如下列代码

array[1][2]=0;
System.out.println(array[1][2]);
这两行代码的意思便是将二维数组array的[1][2]的位置赋值为0并打印出来。


二维数组和一维数组的赋值与取值其实都是一样,只是二维数组需要同时给出第一和第二维度的位置。


既然取值和赋值一样,那么二位数组的遍历是否和一维数组也相差不多呢?



二维数组的遍历

一维数组的遍历是通过for循环,用length取出数组的长度进行遍历。

而二维数组在此基础上多了一个for循环用于遍历对应的第二维数组。

代码如下:


for(int i=0;i<twoarray.length;i++) { //取二维数组的第一维度
			for(int j=0;j<twoarray[i].length;j++) { //取二维数组的第二维度,也就是第一维度中数组的长度
				System.out.print(twoarray[i][j]);
			}
		}



二维数组例题

打印杨辉三角


  1. 需求:打印杨辉三角形(行数可以键盘录入)
  2. 1
  3. 1 1
  4. 1 2 1
  5. 1 3 3 1
  6. 1 4 6 4 1
  7. 1 5 10 10 5 1


首先我们先要分析杨辉三角的规律。最显而易见的当然是每一行的首位和末尾都是一。

其次,从第三行开始,每一个非收尾的数等于上一行的自身加上上一行自身前一列的和。

在找到题目的规律后,我们再用程序的思维去查看这个题目,它每一行貌似都是一个数组,那么我们是否可以把它看为一个不规则的二维数组呢?如果用二维数组来解题又会怎样呢?

直接放出解题代码:


	public static void yanghui(int h) {  //打印杨辉三角 h代表它的行数。
		int sz[][]=new int[h][h]; //创建一个二位数组
		for(int i=0;i<h;i++) {
			sz[i][0]=1;
			sz[i][i]=1;
			for(int j=1;j<=i;j++) {
				if(i>=2) {//i从0开始,所以我们的i要大于等于2才取到的是第三行。
				sz[i][j]=(sz[i-1][j]+sz[i-1][j-1]);
				}
			}
			
			
		}
/*
 * 输出方法一:把非0数字打印出来,如果为0则直接不输出
 */
		for(int w=0;w<=sz.length-1;w++) {
			for(int e=0;e<=sz[w].length-1;e++) {
				if(sz[w][e]!=0) {
				System.out.print(sz[w][e]+" ");
				}
			}
			System.out.println();
		}
		/*
		 * 输出方法二:直接限制列的打印长度等于行,使其多余的部分不会被打印出来。
		 */		
		for(int o=0;o<=sz.length-1;o++) {
		
			for(int p=0;p<=o;p++) {
			
				System.out.print(sz[o][p]+" ");
		
			}
			System.out.println();
		}
		
	}





题目总结:本题使用二维数组,首先初始化一个杨辉三角行数的矩阵二维数组出来,然后把每一位的数字放入对应的数组位置中去,最后遍历该数组,控制格式输出即可~


笔记总结

二维数组和多维数组其实都是基于一维数组的,多维数组也和二维数组一样,无非就是往数组中放数组,仅此而已。



×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在


版权所有,转载注意明处:朱岩松博客 » JAVA二维数组的应用
标签: 学习心得

发表评论

路人甲
未显示?请点击刷新

网友评论(0)