一、数组介绍
数组是一种容器,用来存储同种数据类型(存在隐式转换,小->大)的多个值。
【建议】:容器的类型和存储的类型保持一致。
二、数组的定义和静态初始化
1.定义:
数据类型 [] 数组名 | int [] array |
数据类型 数组名[] | int array [] |
2.数组的初始化:
在内存中,为数组容器开辟空间,并将数据存入容器中的过程。
(1)
静态初始化 | 完整格式 数据类型 [] 数据名 =new 数据类型 [] {} | 简写int [] array={} |
动态初始化 | 完整格式 数据类型 [] 数据名= new 数据类型[数组长度] | int []array=new int [3] |
3.数组的地址值 :表示数组在内存中的位置
地址值的格式含义 [D@776ec8df]
[]: 表示当前是一个数组
D:double类型
@:间隔符号(固定格式)
776ec8df:数组真正地址值(16进制)
【习惯上把整体叫做数组的地址值】
三、数组元素访问
格式:数组名 [索引]
索引:下标 or 角标,从0开始,逐个+1
获取数组中的元素 | 数组名 【索引】 |
把数据存储到数组当中 | 数组名【索引】=具体数据/变量 |
一旦覆盖后,原来的数据就不存在了 |
四、数组的遍历
遍历:取出数据的过程(遍历非打印)
1.将数组中所有数据取出来,取出来之后可以(打印,求和,判断......)
2.数组长度属性 length
调用方式:数组名.length
3.
(1)循环开始条件:0
(2)循环结束条件:数组的长度-1(最大索引)
(3)idea中自动生成遍历数组 :数组名.length
【注意】:arr[i] 表示数组里每一个元素;i 表示数组里每一个下标
五、数组的动态初始化 :
初始化时只指定数组长度,由系统为数组分配初始值
1.格式:
数据类型 【】数组名=new 数据类型【数组长度】
int [ ] arr= new int [3]
2.数组默认初始化值的规律
整数类型 | 默认化初始值为0 |
小数 | 0.0 |
字符 | ' \u000 ' 展示方式:空格 |
布尔 | false |
引用 (除四类以外所有) | null |
六、数组静态初始化与动态初始化的区别
动态初始化 | 手动指定长度,系统给出默认初始值 |
只明确元素个数(如键盘录入5个数),不明确具体数值时, 推荐使用动态初始化 | |
静态初始化 | 手动指定数组元素,系统根据个数,计算出长度 |
七、数组内图
栈,堆
......
八、数组常见问题
当访问了数组中不存在的索引,就会引发索引越界异常。
九、数组常见操作
求最值 | max的默认值一定要为数组中的值(若为0,当数组全负时,错) |
通常max默认值 arr[0],此时为提高效率(减少一次循环),循环开始条件 i=1; | |
求和 | |
交换数据 | 中间变量temp |
打乱数据 | 随机索引 |
交换数据,
打乱数据,(随机数)