二维数组
理解
二维数组中包含了多个一维数组
概念
数组是引用类型
数组中的元素在内存中是连续的
数组中的数据称之为元素
每个元素都有编号,称之为下标
下标从零开始
数组一旦初始化成功,长度不可改变
数组的声明
数组类型[][] 数组名;
数组的初始化
静态初始化
程序员指定元素,长度由系统自动分配
静态初始化1
String[][] names = new String[][] {{"熊大","熊二","光头强"},{"吉吉","毛毛","涂涂","蹦蹦","萝卜头"}};静态初始化2:先声明,再初始化
String[][] names; names = new String[][] {{"熊大","熊二","光头强"},{"吉吉","毛毛","涂涂","蹦蹦","萝卜头"}};静态初始化3:简写静态初始化1
String[][] names = {{"熊大","熊二","光头强"},{"吉吉","毛毛","涂涂","蹦蹦","萝卜头"}};通过下标设置元素
names[1][2] = "跳跳";通过下标获得元素
String str = names[1][2];获取长度
System.out.println("获取二维数组中一维数组的个数:"+names.length); System.out.println("获取二维数组中第一个一维数组元素的个数:"+names[0].length); System.out.println("获取二维数组中第二个一维数组元素的个数:"+names[1].length); 遍历二维数组:先循环获取二维数组中的一维数组,在循环获取一维数组中的元素
遍历 - for循环
for (int i = 0; i < names.length; i++) { for (int j = 0; j < names[i].length; j++) { System.out.println(names[i][j]); } } System.out.println("-----------------------");遍历 - foreach/增强for循环
for (String[] ss : names) { for (String element : ss) { System.out.println(element); } } System.out.println("-----------------------");
动态初始化
程序员指定长度,由系统自动分配元素
整数类型:0
浮点类型:0.0
字符类型:' '
布尔类型:false
引用类型:null
动态初始化1
String[][] names = new String[2][3];//2代表2个一维数组,3代表每个一维数组内有3个元素动态初始化2:先声明,再初始化
String[][] names; names = new String[2][3];通过下标设置元素
names[0][0] = "熊大1"; names[0][1] = "熊大2"; names[0][2] = "熊大3"; names[1][0] = "熊大4"; names[1][1] = "熊大5"; names[1][2] = "熊大6";
案例
案例1
使用动态初始化声明二维数组,其中第一个一维数组有3个元素,第二个一维数组有5个元素
public class Test06 { public static void main(String[] args) { String[][] names = new String[2][]; String[] s1 = {"熊大","熊二","光头强"}; String[] s2 = {"吉吉","毛毛","涂涂","蹦蹦","萝卜头"}; names[0] = s1; names[1] = s2; for (String[] ss : names) { for (String element : ss) { System.out.println(element); } } } }