- 什么是数组?
数组指的是一种容器,可以用来存储同种数据类型的多个值
总结:数组容器在存储数据的时候需要结合数据类型考虑
例如:int类型的数组容器(boolean byte short double)
建议:容器的类型,和存槠的数据类型保持一致
二、数组元素
- 数组元素访问
* 格式:数组名 [ 索引 ]; //arr [8]
* 索引:索引是数组容器中空间的编号,编号从0幵始,逐个 1增长
注意:当访问了数组中不存在的索引,就会引发索引越界异常
- 数组元素修改
* 格式:数组名 [ 索引 ]=修改元素; // arr [0]=5
- 数组元素遍历
* 格式:数组名.length //获取元素个数,元素长度
* 范例:arr.length //arr.length-1是索引长度
注意:
1、遍历指的是取出数据的过程,不要局限的理解为, 遍历就是打印!**
2、i:索引
3、arr[i] :元素
三、数组定义格式
* 格式1:数组类型 [] 数组名
* 范例: int[] array
* 格式2: 数据类型 数组名 []
* 范例: int array []
扩展:打印数组名会出现一个地址值,该值的含义有如下
打印数组名各值的意思:
[I@10f87f48 : 数组的内存地址
@: 分隔符
[: 当前内存空间是一个数组类型
I: 当前空间中存储的数据是int类型
10f87f48 : 十六进制地址值
如果是打印字符数组的话,不会看到地址值,而是具体的内容
原因:println()源码中会自动对字符数组进行遍历操作
四、数组静态初始化
- 数组静态初始化含义
指定元素,长度自动分配
- 数组静态初始化格式
* 格式1:数据类型[] 数组名 = new 数据类型[] {元素1,元素2,..};
* 范例: int [] arr=new int[] {11,22,33}; //[]这里的里面不能加数字
* 格式2:数据类型[] 数组名 = {元素1,元素2...}; //推荐使用
* 范例: int [] arr={11,22,33};
注意:
double [] arr={12,20,5.2};
//这样子是可以的,单个整数或者带小数也一样可以
五、数组动态初始化
- 数组动态初始化含义
初始化时只指定数组长度,由系统为数组分配初始值
- 数组动态初始化格式
* 格式: 数据类型 [] 数组名 =new 数据类型[数组长度];
* 范例:int [] arr=new int [3]; //【3】其实就是数组的元素个数
注意:
1.允许数组间进行赋值,赋值的是自己所记录的地址值
2.当两个数组通过地址指向同一块内存空间的时候,只要有一个对空间的数据发生了修改,那么另外一个去查找的时候,找到的就是改变之后的那份数据
- 数组动态初始化的默认值
例子