数组
1. 什么数组
数组就是一个容器,用来存一批同种类型的数据的。
2. 为什么使用数组
有变量,为什么还要有数组呢? 比如,我们要做一个点名器
如果用变量来做的话,代码是这样子的
一对比我们发现数组的写法比变量的写法更加简洁,所以我们可以得出一个结论
结论:遇到批量数据的存储和操作时,数组比变量更适合
3.数组的定义和访问
【数组就是用于存放同一数据类型的批量数据】
数组有两种初始化的方式,一种是静态初始化、一种是动态初始化。
数组的静态初始化
所谓静态初始化指的是:在定义数组时直接给数组中的数据赋值。
1. 静态初始化标准格式:
数据类型[] 变量名 = new 数据类型[]{元素1,元素2,元素3};
按照格式定义int类型、double类型数组:
2. 静态初始化简化格式
Java语言的设计者为了简化定义数组的写法,还为静态初始化提供了一种简化写法
数据类型[] 变量名 = {元素1,元素2,元素3};
使用简化格式定义int类型、double类型数组:
3. 注意哟!
定义数组时, 数据类型[] 数组名 也可写成 数据类型 数组名[]
一般是一种,第二种不常用。
数组的动态初始化
刚才我们初始化数组时,都是直接将元素写出来。但是还有另一个初始化数组的方式叫 动态初始化。动态初始化
不需要我们写出具体的元素,而是指定元素类型和长度就行。
格式如下
下面是动态初始化数组的原理图。我们发现int[] arr 其实就是一个变量,它记录了数组对象的地址值,而且数组中的元素默认值是0。
注意:
使用动态初始化定义数组时,根据元素类型不同,默认值也有所不同。
数组在计算机中的基本原理
我们以int[] ages = {12,24,36};这句话为例,看一下这句话到底在计算机中做了那些事情。
首先,左边int[] ages 表示定义了一个数组类型的变量,变量名叫ages
其次,右边{12,24,36}表示创建一个数组对象,你完全可以把它理解成一个能装数据的东西。这个对象在内存中会有一个地址值[I@4c873330,每次创建一个数组对象都会有不一样的地址值。
然后,把右边的地址值[I@4c873330赋值给左边的ages变量
所以,ages变量就可以通过地址值,找到数组这个东西。
** 数组的元素访问**
数组中存储的数据我们叫做元素;而且数组中的每一个元素都有一个编号与之对应,我们把这个编号叫做索引,这个索引是从0依次递增的整数。如下图所示
要想访问数组中的元素,格式如下
4. 数组的经典算法
排序
擂台排序[选择排序]
冒泡排序
倒置
5. 数组的工具类Arrays
数组的工具类 完成对数组的操作,比如排序,打印数组内容,复制数组等功能。
排序方法-sort
** toString方法**
** 复制数组--生成一个新数组**