您的位置:首页 > 其它

网工下午复习资料

2008-08-22 12:01 253 查看

1.1.1 二维数组

如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格那样,如下图:



二维数组声明的方式和一维数组类似,内存的分配也要使用new关键字。其声明与分配内存的格式如下:
数据类型 数组名[][];
数组名 = new 数据类型[行的个数][列的个数];
与一维数组不同的是,二维数组在分配内存时,必须告诉编译器二维数组行与列的个数。范例:
int score[][];
score = new int[4][3];
同样的,可以用较为简洁的方式来声明数组:
int score[][] = new int[4][3];
上面的语句中,整型数据score可保存的元素有4*3=12个,而在Java中,int数据类型所占用的空间为4个字节,因此,该整型数组占用的内存共为4*12=48个字节,如图所示:



二维数组的定义及使用:
class ArrayDemo07{
public static void main(String[] args) {
int score[][] = new int[4][3];
score[0][1] = 30;
score[1][0] = 31;
score[2][2] = 32;
score[3][1] = 33;
score[1][1] = 30;
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i].length; j++) {
System.out.print(score[i][j] + "\t");
}
System.out.println();
}
}
}
运行结果:
0 30 0
31 30 0
0 0 32
0 33 0
从程序中读者应该可以找到一个规律,即一维数组如果要全部输出,需要一层循环,而二维数组要想全部输出,则应使用两层循环,同理,对于N维数组,则要使用N层循环。
二位数组也可以利用大括号进行静态初始化,只要在数组的声明格式后面再加上所赋值的初值即可,如下面的格式:
数据类型 数组名[][] = {
{第0行初值},
{第1行初值},

{第n行初值},
};
要特别注意的是,用户不需要定义数组的长度,因此,在数组名后面的中括号中不必填入任何内容。此外,在大括号内还有几组大括号,每组大括号内的初值会依序指定给数组的第0、1…n行元素,如图:



下面是关于二维数组score声明及赋初值的范例:

class ArrayDemo08{
public static void main(String[] args) {
int score[][] = {{12,21},
{44,55,66,77},
{2,54,767,123,32}
};
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i].length; j++) {
System.out.print(score[i][j] + "\t");
}
System.out.println();
}
}
}
运行结果:
12 21
44 55 66 77
2 54 767 123 32

1.1.2 多维数组

想要提高数组的维数,只要在声明数组将索引与中括号再加上一组即可,所以三围数组的声明为int score[][][],而四维数组为int score[][][][]…,以此类推。
使用多维数组时,输入、输出的方式和一维、二维数组相同,当时每多一维,嵌套循环的层数就必须多一层,所以维数越高的数组其复杂度也就越高。下面的程序为三维数组在声明时即赋初值,再将其元素值输出并计算总和:
class ArrayDemo09{
public static void main(String[] args) {
int score[][][] = {
{
{12,32,44},
{33,77}
},
{
{23,32,44,55}
}
};
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i].length; j++) {
for (int j2 = 0; j2 < score[i][j].length; j2++) { System.out.println("score["+i+"]["+j+"]["+j2+"]---"+score[i][j][j2]+"\t");
}
}
}
}
}
运行结果:
score[0][0][0]---12
score[0][0][1]---32
score[0][0][2]---44
score[0][1][0]---33
score[0][1][1]---77
score[1][0][0]---23
score[1][0][1]---32
score[1][0][2]---44
score[1][0][3]---55
因为是三维数组所以使用了3层循环,N维数组要用N层循环,但是一般不建议使用多维数组进行操作。本文出自 “学习之家” 博客,请务必保留此出处http://5838311.blog.51cto.com/5828311/984233
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: