二维数组:(本质,以一维数组作为数组的元素)因为数组中的元素可以是任意类型。
声明创建语法:
int[][] iArrArr = new int[一维数组的个数][一维数组的长度];
二维数组可以先不定义一维数组的长度,但是必须先定义一维数组的个数。
使用增强嵌套for循环可以进行遍历或者使用经典for循环进行遍历
//其中牢记,二维数组中保存的元素是一维数组,一维数组保存的元素是类型值
for(int[] iArr : iArrArr) {
for(int i : iArr) {
System.out.println(i);
}
System.out.println();
}
利用二维数组保存26 a~z A~Z 0~9
public class ArrayArrayTest {
public static void main(String[] args) {
char[][] cArrArr = new char[4][];
cArrArr[0] = new char[26];
cArrArr[1] = new char[26];
cArrArr[2] = new char[10];
cArrArr[3] = new char[3];
for(int i = 0; i < cArrArr[0].length; i++) {
cArrArr[0][i] = (char)('a' + i);
}
for(int i = 0; i < cArrArr[1].length; i++) {
cArrArr[1][i] = (char)('A' + i);
}
for(int i = 0; i < cArrArr[2].length; i++) {
cArrArr[2][i] = (char)('0' + i);
}
cArrArr[3][0] = '王';
cArrArr[3][1] = '*';
cArrArr[3][2] = '*';
/*
for(int i = 0; i < cArrArr.length; i++) {
for(int j = 0; j < cArrArr[i].length; j++) {
System.out.print(cArrArr[i][j] + " ");
}
System.out.println();
}
*/
for(char[] cArr: cArrArr) {
for(char c : cArr){
System.out.print(c + " ");
}
System.out.println();
}
}
}
二维数组小例子:
杨辉三角:
/**
使用二维数组打印一个 10 行杨辉三角.
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. 从第三行开始, 对于非第一个元素和最后一个元素的元素.
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
*/
public class YanghuiTriangle {
public static void main(String[] args) {
int[][] iArr = new int[10][10];
//使用for给它赋值
for(int i = 0; i < iArr.length; i++) {
for(int j = 0; j <= i; j++) {
if(i == j || j == 0) {
iArr[i][j] = 1;
} else {
iArr[i][j] = iArr[i-1][j-1] + iArr[i-1][j];
}
}
}
for(int i = 0; i < iArr.length; i++) {
for(int j = 0; j <= i; j++) {
System.out.print(iArr[i][j] + " ");
}
System.out.println();
}
}
}