二维数组使用名称和两个索引来指定存取数组中的元素. 如一个整型的二维数组 a 的
声明为 int a[] [], 对 a 进行静态初始化: int [] []a={{11,2,3},{2,3,4},{2,3}}; 可以把二维
数组理解为一个数组中嵌套了一个数组, 如果用 i 代表行, 用 j 代表列, 则用平面图表述
组 a 的结构如图 4.18 所示
image.PNG
图 4.18 数组 a 的平面结构
根据图形可知, a[0][1] 的值为 2:a[1][2] 的值为 5:a[2][1] 的值为 8: 并且还可以通过数组
的 length 属性获取数组中元素的个数, 可以通过如下的代码来验证结果
- public static void main(String[] args) {
- int [] []a={{11,2,3},{2,3,4},{2,3}};
- System.out.println(a.length);
- System.out.println(a[0].length);
二维数组中的元素一般都是结合二重循环来赋值或输出的, 外循环控制行数, 内循环
制列数 (如图 4.19 所示)
image.PNG
- public static void main(String[] args) {
- int [] []a={{11,2,3},{2,3,4},{2,3}};
- for (int i=0;i<a.length;i++){
- for (int j=0;i<a[i].length;j++){
- System.out.print(a[i][j]+" ");
- System.out.println();
- }
- }
二维数组对象: 以对象的方式来配置一个二维数组对象, 如图 4.20 所示
image.PNG
图 420 二维数组的内存结构
例如:
int[] [] arr =new int[2] [3];
[例 4.13] ArmayArrayJava
数组也可以先分解为两个一维数组的形式, 然后再分别输出数据, 代码如下
- public static void main(String[] args) {
- int[][] arr = {{11, 2, 3}, {2, 3, 4}};
- int[] foo = arr[0];
- print(foo);
- System.out.println();
- foo = arr[1];
- print(foo);
- System.out.println();
- }
- public static void print(int[] c){
- for (int i=0;i<c.length;i++){
- System.out.print(" "+c[i]);
- System.out.println("");
- }
- }
输出结果为:
image.PNG
也可以使用 new 关键字配置二维数组并同时指定初值, 例如:
int [] [] arr=new [][] {{11, 2, 3}, {2, 3, 4}};
三维数组的初始化形式为:
int [] [][][] arr=new [][][] {{{11, 2, 3},{3,4,5,3}}, {{2, 3, 4},{3,2,4}}};
一般三维数组最左边的数据一定要告诉计算机准备多少内存存放于第一维元素, 例如
int [] [][] arr=new [2][][]
也可以三个都指定, 例如
int [] [][] arr=new [2][2][3]
[例 414] ArmayArayArray.java
虽然一般在 java 编程过程中很少涉及三维以上的数组, 但是加语言还是支持三维以上的数组定义, 如下面的代码所示
image.PNG
在多维数组中, 最多用到三维数组, 三维以上数组基本不会使用到. 因此就不过多地
时论了感兴趣的读者可以查阅相关的文档
来源: http://www.jianshu.com/p/ca3f728d1e1a