知识分享:Java数组
本文大纲

前言
上一章文章 帮你看清 Java 字符串的世界,我们学习了 Java 的一种引用类型——字符串,今天我们来学习另外一种引用类型——数组。
想要学习更多知识,请点击:https://www.bilibili.com/video/BV1dy4y1W7Db
https://www.bilibili.com/video/BV1Qb4y1D75J
https://www.bilibili.com/video/BV1qo4y1f7Uw
https://www.bilibili.com/video/BV1s64y1i77s
https://www.bilibili.com/video/BV1g84y1F7vS
为什么需要数组
试想一个场景,Java 课老师要统计全班同学的期末平均成绩,如果用程序编写该怎么做呢?
最原始的做法就是,有几个学生定义几个整型变量,然后把分数赋值给这些变量,最后求和再除以学生数。假设有 6 个学生,就可以有以下程序:

你会发现这样的程序写起来很麻烦,而且不具有普适性,学生人数变成 7 个就得改代码。另外学生人数如果变多,比如 100 个,你去定义 100 个变量那可能要累死!
那有没有更好的方法呢?
就这个场景来看,学生的成绩都是整数类型,那分组统一处理是不是会比较好?求平均成绩本质上就是这个组内所有成绩求和再除以学生个数。
想要学习更多知识,请点击:https://www.bilibili.com/video/BV1dy4y1W7Db
https://www.bilibili.com/video/BV1Qb4y1D75J
https://www.bilibili.com/video/BV1qo4y1f7Uw
https://www.bilibili.com/video/BV1s64y1i77s
https://www.bilibili.com/video/BV1g84y1F7vS
聪明的计算机先驱者也是基于类似思路想出一种数据结构,解决了这种问题。那就是数组。
什么是数组
什么是数组?
数组是存储有限个相同类型数据的集合。
通过这个定义描述,我们可以发现数组的三个特点。首先它是一个存储数据的结构,其次是存到它里面的数据类型都是相同的,最后它是一个数据集,可以往里边增加或者移除数据,但能容纳的数量是有限的。
那基于定义描述,数组就有这些关键信息:数组类型,数组大小,数组名。
数组类型决定数组支持什么样的数据类型。
数组大小决定了数组最多能容纳几个数据。
想要学习更多知识,请点击:https://www.bilibili.com/video/BV1dy4y1W7Db
https://www.bilibili.com/video/BV1Qb4y1D75J
https://www.bilibili.com/video/BV1qo4y1f7Uw
https://www.bilibili.com/video/BV1s64y1i77s
https://www.bilibili.com/video/BV1g84y1F7vS
数组名可用于数组的各种操作,也是我们之前提到过的变量的概念。
Java 怎么表示数组
那在 Java 中,怎么表示数组呢?格式如下:


Java 数组的特点
观察代码我们发现,初始化一个新的数组是用 new
这个关键字,同时确定了数据类型和数组大小。代码示例中数据类型就是 int
,数组大小就是 6。
数组一旦初始化完成,大小就不可改变。你可以理解成计算机为数组分配了连续的内存空间,这块空间相当于就固定了,通过数组名来进行访问。
想要学习更多知识,请点击:https://www.bilibili.com/video/BV1dy4y1W7Db
https://www.bilibili.com/video/BV1Qb4y1D75J
https://www.bilibili.com/video/BV1qo4y1f7Uw
https://www.bilibili.com/video/BV1s64y1i77s
https://www.bilibili.com/video/BV1g84y1F7vS

数组初始化会有缺省值,整型都是 0
,浮点型都是 0.0
,布尔型都是 false
。当然你也可以在初始化的时候就指定值,比如这样 int[] initStudentScoreArray = new int[]{88, 89, 90, 93, 79, 85};
,这样还有个好处,就是不用写数组大小,因为编译器会自动推算数组大小。其实还可以进一步简写为:int[] sampleStudentScoreArray = {88, 89, 90, 93, 79, 85};
。
数组元素的访问通过索引实现,索引从 0
开始,比如 6 个元素的数组,索引范围是 0~5
。如果访问范围之外的索引,会抛数组越界异常。

数组元素是可以修改的,通过赋值语句,比如 studentScoreArray[0] = 88;
。
数组可通过 数组名.length
来获取数组的大小。
数组既然是引用类型,那么数组名修改指向就可以更新它的内容。以下代码你猜输出结果会是什么呢?
想要学习更多知识,请点击:https://www.bilibili.com/video/BV1dy4y1W7Db
https://www.bilibili.com/video/BV1Qb4y1D75J
https://www.bilibili.com/video/BV1qo4y1f7Uw
https://www.bilibili.com/video/BV1s64y1i77s
https://www.bilibili.com/video/BV1g84y1F7vS

没错,数组变量 studentScoreArray
在指向 otherArray
之前指向的数组后,studentScoreArray
代表的也就是 3 个元素的数组了。

输出结果如下:

总结
本文介绍了程序设计语言中最为常用的一种数据结构——数组。通过一个常见场景引出了数组诞生的背景,接着介绍了数组的概念,然后讲解了在 Java 中数组的表示方式,最后结合示例分析了 Java 数组的特点。希望对你能够有所启发和帮助,记得点赞支持下!
想要学习更多知识,请点击:https://www.bilibili.com/video/BV1dy4y1W7Db
https://www.bilibili.com/video/BV1Qb4y1D75J
https://www.bilibili.com/video/BV1qo4y1f7Uw
https://www.bilibili.com/video/BV1s64y1i77s
https://www.bilibili.com/video/BV1g84y1F7vS
作者:蜗牛互联网
链接:https://juejin.cn/post/6953407192112316430
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。