在之前所定义的数组里面会发现只有一个“[]”,所以这个时候的数组就好像一行数据一样,可以利用下标进行行数据的访问。
传统的数组就好比一行数据,如果要想找到一个数据只需要确定一个下标即可。
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
数据 | 890 | 90 | 91 | 789 | 65 | 768 | 897 |
如果说现在你需要的是一个多行多列的结构(表),则就需要通过两个下标才可以描述出一个数据,那么就需要有行下标与列下标共同定义才可以找到,所以这样的数组形式就称为二维数组。
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
0 | 890 | 90 | 91 | 789 | 65 | 768 | 897 |
1 | 1 | 23 | 3 | 4 | 5 | 56 | 7 |
2 | 90 | 98 | 756 | 1 | 2 | 34 | 456 |
对于二维数组可以使用的定义语法如下:
数组的动态初始化:
数据类型 数组名称 [] [] = new 数据类型 [行个数] [列个数] ;
数组的静态初始化:
数据类型 数组名称 [] [] = new 数据类型 [] [] {{数据,数据,…},{数据,数据,…},{数据,数据,…},…};
范例:定义二维数组
public class ArrayDemo {
public static void main (String args []) {
int data [] [] = new int [] [] {
{1,2,3,4,5},{1,2,3},{5,6,7,8}} ;
for (int x = 0 ; x < data.length ; x++){
for (int y = 0 ; y < data[x].length ; y ++) {
System.out.println("data["+x+"]["+y+"] = " + data [x][y]) ;
}
System.out.println() ; // 换行
}
}
}
既然二维数组的每一行都属于一个数组,那么这种情况下就可以通过每一行的数组求出数组长度。
索引(下标) | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 |
1 | 1 | 2 | 3 | ||
2 | 5 | 6 | 7 | 8 |
如果这个时候要求使用foreach来进行输出呢?
范例:使用foreach输出二维数组
public class ArrayDemo {
public static void main (String args []) {
int data [] [] = new int [] [] {
{1,2,3,4,5},{1,2,3},{5,6,7,8}} ;
for (int temp []: data) {
for (int num : temp) {
System.out.print(num + "、") ;
}
System.out.println() ;
}
}
}
通过foreach的输出格式可以清楚的观察到,二维数组的嵌套使用。随着开发技术的发展,如果要进行一些应用层的程序开发,那么很少会涉及到二维数组,更不用说更高级的多维数组。