一.引入
现在,有一个场景需求,我们需要将10个数字存入,也就是10个变量。但如果场景需求改变,是用户输入了10个数,让我们求里面的最大值。那10个变量就显得过于臃肿。
我们需要一个新的数据结构,来装一系列的数据。
我们简单介绍一下数组,如果说以前的变量是一个没有隔间的衣柜,一个衣柜只可以装一件衣服。那么数组就是一个有隔间的衣柜,一个隔间装一件衣服。
其特点是每个隔间里装的东西都需要是同一个数据类型,那么整个衣柜就等于数组,给每个隔间赋予一个编号,就是索引,从0开始;隔间里的东西就是元素;隔间的长度就是数组的长度。
二.定义
数组分为动态初始化和静态初始化:
动态初始化
动态初始化,即先定义好,再赋值。(先有容器,再装东西)
语法:
类型[] 数组名 = new 类型[数组的长度];
类型 数组名[] = new 类型[数组的长度];
- 类型: 这个数组里面只能装此种类型
- []: 数组的符号
- 数组名: 表示符,遵循小驼峰命名规范
- new: 引用类型的初始化都要用到
- 类型[长度]:数组的长度
例子:
int[] ages = new int[100];
//---> 把100个人的年龄存放起来
String[] names = new String[20];
//---> 把200个人的名字存起来
特点是,先定义了一个数组,每个都各自有它的默认值。
静态初始化
静态初始化,也就是在定义数组(包括了数组的长度)的时候,同时赋值。
语法:
类型[] 数组名 = new 类型[]{元素0, 元素1};类型 数组名[] = new 类型[]{元素0, 元素1};类型[] 数组名 = {元素0, 元素1}; [推荐使用,语法更简单]类型 数组名[] = {元素0, 元素1}; [推荐使用,语法更简单]
特点是,一次性定义好所有,属于是一步到位。
例子:
int[] ages = {20, 22, 23};
String[] names = {"张三", "李四"}
区别
本质区别:
- 动态:声明数组,定义好数组的长度
- 静态:声明数组,定义好数组的长度,每个项的数据页确定
适用场景:
- 一开始确定不了每一项数据的都用动态
- 数据项比较少,且每项确定的时候使用静态
总结:
- 再不同的场景使用合适定义方式即可