二维数组中包含多个一维数组
(一)数组的声明
数据类型[][] 数组名;
String[][] names;
(二)数组的初始化
1.静态初始化
静态初始化指在初始化时元素由程序员指定,系统根据元素自行确定数组的长度。
//静态初始化一 String[][] names = new String[][]{{"王一","王二","王三"},{"李一","李二","李三","李四"}}; //静态初始化二(先声明后初始化) String[][] names; names = new String[][]{{"王一","王二","王三"},{"李一","李二","李三","李四"}}; //静态初始化三 String[][] names = {{"王一","王二","王三"},{"李一","李二","李三","李四"}};
2.动态初始化
动态初始化指在初始化时数组长度由程序员指定,系统根据长度分配元素。
//动态初始化一 String[][] names = new String[2][3];//生成两个一维数组,且每个一维数组含三个元素的二维数组 //动态初始化二 String[][] names; names = new String[2][3];
不同数据类型系统分配的元素
数据类型 | 默认值 |
---|---|
整型 | 0 |
浮点型 | 0.0 |
字符型 | ‘ ’ |
布尔类型 | false |
引用类型(除基本数据类型以外的其他数据) | null(空) |
注意:
一维数组是线性数据结构
二维数组不是线性数据结构
(三)数组的使用
1.通过下标设置元素
names[0][1] = "李五";
2.通过下标获取元素
String str = names[0][1];
3.获取长度
数组是二维的,因此获取长度时要注意,要获取的到底是谁的长度。
System.out.println("二维数组的一维数组个数"+names.length); System.out.println("二维数组的第一个一维数组元素个数"+names[0].length); System.out.println("二维数组的第二个一维数组元素个数"+names[1].length);
4.遍历
(1)for遍历
for (int i = 0; i < names.length; i++) { for (int j = 0; j < names[i].length; j++) { System.out.println(names[i][j]); } }
(2)foreach遍历
for (String[] s : names) { for (String element : s) { System.out.println(element); } }