(阅读本文章前,请各位看官老爷先自行学习一维数组)
一、二维数组定义
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。例如: int[2][2] arr;
定义!? 谁没事看定义啊!?二维数组怎么用!?搞快点!
二、二维数组的使用
1.快速入门案例
请用二维数组输出下列图形: 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1
好了,通过这个简单案例,各位看官老爷对二维数组有一个认识了吗?
2.使用方式
动态初始化
语法: 类型[][] 数组名 = new 类型[大小][大小]
例如: int[][] arr = new int[2][2]
好的,接下来看一个例子:
通过这段代码打印输出我们在控制台可以看到:
这里可能会有看官老爷会问 为什么是0啊?
这是因为我们新建数组的时候并没有给元素赋值,如果我们在创建数组之后执行这段语句:
至于输出结果,请各位看官老爷屈尊动动手,自己尝试着做一下。
3.二维数组案例
3.1基础运用
题目:获取arr数组中所有元素的和。
i\j | j=0 | j=1 | j=2 | j=3 |
---|---|---|---|---|
i=0 | 3 | 5 | 8 | 0 |
i=1 | 12 | 9 | 0 | 0 |
i=2 | 7 | 0 | 6 | 4 |
public class Sum {
public static void main(String[] args) {
//首先静态初始化二维数组
int[][] arr = { {3,5,8,0},
{12,9,0,0},
{7,0,6,4}};
//定义一个变量sum用于存放每次数组遍历的值
int sum = 0;
//遍历二维数组
for (int i = 0; i <arr.length ; i++) {
for (int j = 0; j <arr[i].length ; j++) {
sum+=arr[i][j];
//这里也可以写为 sum = sum + arr[i][j]
}
}//打印sum就能求出数组元素的和
System.out.println(sum);
}
}
3.2杨辉三角
题目:打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
首先,我们对杨辉三角进行分析,寻找规律。
通过分析,我们不难找出杨辉三角的规律
1.第1行有一个元素,第n行有n个元素。
2.每行的第一个元素和最后一个元素都是1。
3.从第三行开始,对非第一个元素和最后一个元素的元素值. arr[i][j]
arr[i][j] = arr[i-1][j] + arr[i-1][j-1]
找到规律后,我们开始书写代码,进行杨辉三角的打印:
public class YangHui {
public static void main(String[] args) {
//调用Scanner函数进行行数的输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入杨辉三角行数:");
int hang = sc.nextInt();
//动态初始化创建二维数组 其中行数设置为我们输入的数字
int[][] yanghui = new int[hang][];
for (int i = 0; i <yanghui.length ; i++) { //遍历yanghui的每一个元素
//给每一个一维数组(行)开辟空间
yanghui[i] = new int[i+1];
//给每一个一维数组赋值
for (int j = 0; j <yanghui[i].length ; j++) {
//每一行的第一个元素和最后一个元素是1
if (j == 0 || j == yanghui[i].length - 1){
yanghui[i][j] = 1;
}else {//中间元素
yanghui[i][j] = yanghui[i-1][j]+yanghui[i-1][j-1];
}
}
}
//打印杨辉三角
for (int i = 0; i <yanghui.length ; i++) {
for (int j = 0; j <yanghui[i].length ; j++) {
System.out.print(yanghui[i][j]+ " ");
}
System.out.println();
}
}
}
最后的打印结果: