共计 2626 个字符,预计需要花费 7 分钟才能阅读完成。
作者 | 红色蜗牛
转载请分割受权(微信 ID: 919201148)
本文纲要
前言
上一章文章 帮你看清 Java 字符串的世界,咱们学习了 Java 的一种援用类型——字符串,明天咱们来学习另外一种援用类型——数组。
为什么须要数组
试想一个场景,Java 课老师要统计全班同学的期末均匀问题,如果用程序编写该怎么做呢?
最原始的做法就是,有几个学生定义几个整型变量,而后把分数赋值给这些变量,最初求和再除以学生数。假如有 6 个学生,就能够有以下程序:
/**
* @author 蜗牛
* @from 公众号:蜗牛互联网
*/
public class ArrayShow {
public static void main(String[] args) {
int student1 = 88;
int student2 = 89;
int student3 = 90;
int student4 = 93;
int student5 = 79;
int student6 = 85;
int sum = student1 + student2 + student3 + student4 + student5 + student6;
int average = sum / 6;
System.out.println(average);
}
}
你会发现这样的程序写起来很麻烦,而且不具备普适性,学生人数变成 7 个就得改代码。另外学生人数如果变多,比方 100 个,你去定义 100 个变量那可能要累死!
那有没有更好的办法呢?
就这个场景来看,学生的问题都是整数类型,那分组对立解决是不是会比拟好?求均匀问题实质上就是这个组内所有问题求和再除以学生个数。
聪慧的计算机先驱者也是基于相似思路想出一种数据结构,解决了这种问题。那就是 数组。
什么是数组
什么是数组?
数组是 存储无限个雷同类型数据的汇合。
通过这个定义形容,咱们能够发现数组的三个特点。首先它是一个存储数据的构造,其次是存到它外面的数据类型都是雷同的,最初它是一个数据集,能够往里边减少或者移除数据,但能包容的数量是无限的。
那基于定义形容,数组就有这些要害信息:数组类型 , 数组大小 , 数组名。
数组类型决定数组反对什么样的数据类型。
数组大小决定了数组最多能包容几个数据。
数组名可用于数组的各种操作,也是咱们之前提到过的变量的概念。
Java 怎么示意数组
那在 Java 中,怎么示意数组呢?格局如下:
` 数组类型[] 数组名 = new 数组类型[数组大小]`
咱们举个形象的例子,比方把上边提到的学生问题放到一个数组里,示例如下:
int[] studentScoreArray = new int[6];
System.out.println("赋值前第一个元素值为:" + studentScoreArray[0]);
studentScoreArray[0] = 88;
studentScoreArray[1] = 89;
studentScoreArray[2] = 90;
studentScoreArray[3] = 93;
studentScoreArray[4] = 79;
studentScoreArray[5] = 85;
System.out.println("赋值后第一个元素值为:" + studentScoreArray[0]);
打印:
赋值前第一个元素值为:0
赋值后第一个元素值为:88
以上代码就实现了数组定义、取值和赋值的操作。
Java 数组的特点
察看代码咱们发现,初始化一个新的数组是用 new
这个关键字,同时确定了数据类型和数组大小。代码示例中数据类型就是 int
,数组大小就是 6。
数组一旦初始化实现,大小就不可扭转。你能够了解成计算机为数组调配了间断的内存空间,这块空间相当于就固定了,通过数组名来进行拜访。
数组初始化会有缺省值,整型都是 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
来获取数组的大小。
数组既然是援用类型,那么数组名批改指向就能够更新它的内容。以下代码你猜输入后果会是什么呢?
`package cn.java4u.codebase.array;`
`/**`
`* @author 蜗牛 `
`* @from 公众号:蜗牛互联网 `
`*/`
`public class ArrayDemo {`
`public static void main(String[] args) {`
`int[] studentScoreArray = new int[]{88, 89, 90, 93, 79, 85};`
`int[] otherArray = new int[]{3, 2, 1};`
`System.out.println(studentScoreArray.length);`
`studentScoreArray = otherArray;`
`System.out.println(studentScoreArray.length);`
`}`
`}`
没错,数组变量 studentScoreArray
在指向 otherArray
之前指向的数组后,studentScoreArray
代表的也就是 3 个元素的数组了。
输入后果如下:
6
3
总结
本文介绍了程序设计语言中最为罕用的一种数据结构——数组。通过一个常见场景引出了数组诞生的背景,接着介绍了数组的概念,而后解说了在 Java 中数组的示意形式,最初联合示例剖析了 Java 数组的特点。心愿对你可能有所启发和帮忙,记得点赞反对下蜗牛!
我是蜗牛,大厂程序员,专一技术原创和个人成长,正在互联网上摸爬滚打。欢送关注 我,和蜗牛一起成长,咱们一起牛~ 下期见!
关注我,回复 1024 获取 Java 程序员必备学习资源!