二维数组
顾名思义, 二维数组就把几个一位数组放进数组中, 他们组成二维数组
定义格式
//动态初始化
int [] [] a = new int [5] [3];
//静态初始化
int [][] b = {{1,2,3},{4,5,6}};
//亦或是
int bb [] [] = new int[][]{{1,2,3},{1,4,5}};
//或者是 创建好空的二维数组, 把一维数组放进二维数组中
int [] [] a = new int [5] [3];
int arr1 [] = {1,2,3};
int arr2 [] = {4,5,6,7};
a1[0] = arr1;
a1[1] = arr2;
//二维数组的遍历
for (int i = 0; i < a1.length; i++) {
for (int i1 = 0; i1 < a1[i].length; i1++) {
System.out.println(a1[i][i1]);
}
}
二维数组的应用案例, 打印杨辉三角
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
//创建方法,打印出杨辉三角形(要求打印出10行)
Scanner sc = new Scanner(System.in);
System.out.println("请输入打印杨辉三角的行数");
int n = sc.nextInt();
//定义一个存放杨辉三角数字的二位数组,n表示最大行,最多有几个数字
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++) {
//控制行数,i表示第几行
for (int j = 0; j <= i; j++) {
//控制本行的列数
if (j < 1 || j >= i || i < 1) { //每行的第一个元素和最后一个元素都要直接等于1,并且i要大于1
arr[i][j] = 1;
} else {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]; //i行j列这个元素 等于 i-1行 j列 j-1列 的和
}
}
}
for (int i = 0; i < arr.length; i++) {
for (int m = n - i - 1; m > 0; m--) {
//为数字左侧加上空格,最后一行不加空格,所以减去1
System.out.print("\t");
}
for (int j = 0; j <= i; j++) {
System.out.print(arr[i][j] + "\t\t"); //让数字错开,上一行的数字正好对应着这一行两个空格的中间
}
System.out.println();
}
}
}