概述:二维数组也是一种容器,不同于一维数组,该容器存储的都是一维数组容器
动态初始化:数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组可以存放多少个一维数组==(行)==
n表示每一个一维数组,可以存放多少个元素==(列)==
定义格式
格式1:数据类型[][] 变量名;
格式2:数据类型 变量名[];
格式3:数据类型[] 变量名[];
拓展: 将一个提前创建好的一维数组存储到二维数组中
int[] arr = {11, 22, 33};
int[][] arr2 = new int[1][3];
arr2[0] = arr;
System.out.println(arr2[0][2]);
静态初始化:
格式:数据类型[][] 变量名 = new 数据类型[][]{{元素1, 元素2,…}, {元素1, 元素2,…}…};
简化格式:数据类型[][] 变量名 = {{元素1, 元素2,…}, {元素1, 元素2,…}, …};二维数组遍历:
int[][] arr = {{1,2,5},{7,10,15},{2,34,56,0}};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
for each循环
java有一种功能很强的循环结构,可以用来依次处理数组(或者其他元素集合)中的每个元素,而不必考虑指定下标值
这种增强for循环的语句格式为:
for (variable : collection) statement
它定义一个变量用于暂存集合中的每一个元素,并执行相应语句也可以是语句块)。
collection这一集合表达式必须是一个数组或者是一个实现了Iterable接口的类对象。
for (variable : collection for (int element :a) System.out.println(element);
打印数组a的每一个元素,一个元素占一行。
这个循环应该读作“循环a中的每一个元素”(for each element in a)。Java 语言的设计者认为应该使用诸如foreach、in这样的关键字,但这种循环语句并不是最初就包含在Java语言中的,而是后来添加进去的,而且没有人希望破坏已经包含同名(例如Systemin)方法或变量的旧代码。
当然,使用传统的for循环也可以获得同样的效果:
for (int i=0;i但是,for each循环语句显得更加简洁、更不易出错,因为不必为下标的起始值和终止值而操心。



