int[][] arr = { {0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0},
{0,2, 0, 3, 0, 0}, {0, 0, 0, 0, 0, 0} };
- 例子:输出二维数组中的每一个元素
public class TwoDimensionalArray01 {
public static void main(String[] args) {
int[][] arr = { {0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0},
{0,2, 0, 3, 0, 0}, {0, 0, 0, 0, 0, 0} };
for(int i = 0; i < arr.length; i++) {
//遍历二维数组的每个元素(数组)
//1. arr[i] 表示 二维数组的第 i+1 个元素 比如 arr[0]:二维数组的第一个元素
//2. arr[i].length 得到 对应的 每个一维数组的长度
for(int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
//输出了一维数组
}
System.out.println();//换行
}
}
}
int[][] arr = new int[3][];// 此时一维数组还没有分配内存空间;arr[i]的地址为null;
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[i + 1];// 给每个一维数组开辟空间,若没有这一步,一维数组的内存空间就是null;
}
- 第一行有 1 个元素, 第 n 行有 n 个元素 ;
- 每一行的第一个元素和最后一个元素都是 1 ;
- 从第三行开始, 对于非第一个元素和最后一个元素的元素的值 arr[i][j] ,arr[i][j] = arr[i-1][j] + arr[i-1][j-1]。
public class TwoDimentionalArray01 {
public static void main(String[] args) {
int[][] a = new int[10][];
for (int i = 0; i < a.length; i++) {
// 给每个一维数组开辟堆内存空间,第n行有n个元素
a[i] = new int[i + 1];
// 遍历每一个一维数组,赋值
for (int j = 0; j < a[i].length; j++) {
// 每一行的第一个元素和最后一个元素都是1
if (j == 0 || j == a[i].length - 1) {
a[i][j] = 1;
} else {
// 每一行非第一个元素和最后一个元素的值 = 上一行的同一列 + 上一行的上一列
a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
}
}
}
// 输出杨辉三角
for (int i = 0; i < a.length; i++) {
for (int k = 0; k < a[i].length; k++) {
System.out.print(a[i][k] + "\t");
}
System.out.println();
}
}
}
(1)一维数组的声明方式有: int[] x 或者 int x[] ;
(2)二维数组的声明方式有: int[][] y 或者 int[] y[] 或者 int y[][] ;
(3)二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。
- 比如: map[][] 是 一个二维数组, int[][] map = {{1,2},{3,4,5}} ;其中,map[0] 是一个含有两个元素的一维数组 ,map[1] 是一个含有三个元素的一维数组,因此, map[][] 也称为 “列数不等的二维数组”。