前面讲了一维数组,一般情况下,用于简单数据的处理够了,但如果我们遇到一些比较复杂的应用程序设计场景,就往往不能满足要求了,所以 Java语言也提供了二维数组和多维数组,供大家使用。先看二维数组。
1、声明方法
数据类型 数组名[ ][ ];
例如 int nArray[ ][ ] ;
2、内存分配
数组名 = new 数据类型[行的个数][列的个数];
nArray = new int[4][3] ;
//给4行3列的数组分配空间
提问:这里nArray总共分配了多少字节的空间?
3、元素赋值与访问
初始化方式的赋值,也即声明时就直接赋值:
intnArray[ ][ ] =
{
{1,2,3,4},
{5,6,7,8}
};
注意:这里不需要定义数组的长度,在数组名后面的[][]括号里不需要填入内容。在声明后,使用下面的赋值方式也可以达到同样的结果:
nArray[0][0]= 1;
nArray[0][1]= 2;
...
4、每行数组元素的个数
在Java语言中,二维数组中每行的元素个数,是可以不同的,注意这与其他的程序语言可能不同。例如
intnArray[ ][ ] =
{
{1,2,3,4,5},
{6,7},
{8,9,10},
};
5、数组长度的获取
在二维数组中,若是想取得整个数组的行数,或者是某行元素的个数时,可利用“.length”来获取,其语法如下:
数组名.length // 取得数组的行数
数组名[行的索引].length // 取得特定行元素的个数
nArray.length; // 计算数组 num 的行数,其值为3
nArray[0].length // 计算数组 num 的第1 行元素的个数,其值为 5
nArray[1].length // 计算数组 num 的第2 行元素的个数,其值为 2
6、例子
以销售量统计作为背景,打印3个销售人员的近4个月的销售量,并计算所有人4个月的总销售量。
int i, j, nTotal = 0;
int nSales[ ][ ] = {
{ 35, 32, 43, 39 },
{ 30, 45, 50, 37 },
{ 30, 45, 55, 58 },
}; // 声明数组并初始化赋值
for ( i = 0; i < nSales.length; i++ )
{
System.out.print("第 " + (i + 1) +" 个人的销售量为:");
for (j = 0; j < nSales[i].length; j++)
{
System.out.print(nSales[i][j] + " ");
nTotal += nSales[i][j]; // 累加总销售量
}
System.out.println();
}
System.out.println("\n总销售量是:" + nTotal);
大家可以思考下,最终输出的结果是什么?
对于多维数组,只要在声明数组的时候将索引与中括号再加一组即可,例如三维数组的声明为 intnArray[ ][ ][ ],而四维数组为 intnArray[ ][ ][ ][ ] … …,以此类推。
注意:使用多维数组时,输入、输出的方式和一、二维相同,但是每多一维,嵌套循环的层数就必须多一层,所以维数越高的数组,其复杂度也就越高。
////////
微价值网(公号vjiazhi),专注移动互联网、App推广、盈利以及Android/iOS等技术基础培训。
我们的微价值,就是你的大价值!