二维数组
源码
class DoubleArray{
public static void main(String[] args){
//定义一个二维数组
int[][] da;
//动态初始化, 必须指定第一维长度
da = new int[4][];
//遍历da
for( int[] a: da){
System.out.println(a);
}
System.out.println("---------------------------");
//给[2]指定引用
da[2] = new int[4];
//赋值
da[2][2] = 7;
//给[3]指定引用
da[3] = new int[2];
da[3][1] = 4;
//遍历da
for( int[] a: da){
System.out.println(a);
}
System.out.println("---------------------------");
//遍历da[2]
for( int a: da[2]){
System.out.println(a);
}
System.out.println("---------------------------");
//遍历da[3]
for( int a: da[3]){
System.out.println(a);
}
}
}
输出
H:\Code\Java\learn\array>java DoubleArray
null
null
null
null
---------------------------
null
null
[I@15db9742
[I@6d06d69c
---------------------------
0
0
7
0
---------------------------
0
4
1. 定义并初始化
数组类型是引用类型,第一维是引用类型,默认是null

2. 给da[2]初始化,并赋值

3. 给da[3]初始化,并赋值

4.同时初始化两个二维
int[][] a = new int[3][4];

多维数组
String类型二维数组
String[][] ss = new String[][]{new String[3], new String[]{"Hello"}};
第一维有两个引用
第二维第一个3个String变量,实际也是引用,第二个1个String
最后的变量必须是String,因为是String类型数组

int类型的三维数组
源码
int[][][] iii = new int[][][]{new int[][]{new int[]{3,4,5}, new int[]{7,8}}, new int[3][4]};
System.out.println("iii: ");
for(int[][] ii: iii)
System.out.println(ii);
System.out.println("------------------------");
System.out.println("iii[0]: ");
for(int[] ii: iii[0])
System.out.println(ii);
System.out.println("------------------------");
System.out.println("iii[1]: ");
for(int[] ii: iii[1])
System.out.println(ii);
System.out.println("------------------------");
System.out.println("iii[0][0]: ");
for(int i: iii[0][0])
System.out.println(i);
System.out.println("------------------------");
System.out.println("iii[0][1]: ");
for(int i: iii[0][1])
System.out.println(i);
System.out.println("------------------------");
System.out.println("iii[1][0]: ");
for(int ii: iii[1][0])
System.out.println(ii);
System.out.println("------------------------");
System.out.println("iii[1][1]: ");
for(int ii: iii[1][1])
System.out.println(ii);
System.out.println("------------------------");
System.out.println("iii[1][2]: ");
for(int ii: iii[1][2])
System.out.println(ii);
System.out.println("------------------------");
输出
H:\Code\Java\learn\array>java MoreArray
iii:
[[I@15db9742
[[I@6d06d69c
------------------------
iii[0]:
[I@7852e922
[I@4e25154f
------------------------
iii[1]:
[I@70dea4e
[I@5c647e05
[I@33909752
------------------------
iii[0][0]:
3
4
5
------------------------
iii[0][1]:
7
8
------------------------
iii[1][0]:
0
0
0
0
------------------------
iii[1][1]:
0
0
0
0
------------------------
iii[1][2]:
0
0
0
0
------------------------

这只是笔者的理解,有不足的请指出
二维不能扩充至三维,至少这里int类型不可以,因为指定了是int类型
二维可以参差不齐,但数据类型最终得一至
网友评论