网站首页 > java教程 正文
前面讲了一维数组,一般情况下,用于简单数据的处理够了,但如果我们遇到一些比较复杂的应用程序设计场景,就往往不能满足要求了,所以 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等技术基础培训。
我们的微价值,就是你的大价值!
猜你喜欢
- 2025-09-12 Java并发编程必知:wait()与sleep()的6大核心区别及实战避坑指南
- 2025-09-12 程序员吐槽在阿里混吃等死,每天刷着手机,拿着可怜的30k工资
- 2025-09-12 新人如何自学安卓手机软件开发?_安卓app开发自学教程
- 2025-09-12 我的编程梦----聊聊学习Java_我的编程梦是什么
- 2025-09-12 用Java开发Android App_用Java开发安卓收费吗
- 2025-09-12 Appium + Python + WiFi实现对手机的自动化
- 2025-09-12 轻松实现Lua编程语言在安卓端运行
- 2025-09-12 教大家手机运行linux(以及mc服务器)
- 2025-09-12 不写代码,让 AI 生成手机 APP!保姆级教程
- 2025-09-12 详细的手机编程结构讲解,小白都能看的懂,编程一点都不难
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)