九、数组
一维数组
1.作用
存储一组数据类型相同的数据
2.特点
1.长度不可变
2.存储的数据类型一致
3.步骤
声明/创建/使用
4.声明:
语法:
数据类型[] 数组名;
数据类型 数组名[];
5.创建
静态创建:
语法:
数据类型[] 数组名 = {值1,值2,值3,值4,...值n};
注意事项:
1,必须在声明时创建
2,其长度就是创建时值的个数
动态创建:
语法:
带值
数组名 = new 数据类型[]{值1,值2,值3,...};
注意:
其长度就是创建时值的个数
不带值
数组名 = new 数据类型[长度];
动态创建与静态创建的区别:
1,静态创建必须在声明时创建,动态创建可以将声明与创建分开,也可以同时进行
2,内存上来说
静态创建的内存在常量区
动态创建的内容在堆内存
3,静态创建是在代码加载时分配的内存空间,动态创建是在代码运行时分配的空间
注意:
堆内存中的数据有默认值
基本数据类型默认为0
引用数据类型默认为null
6.使用
基本使用
改
修改指定位置的数据
语法:
数组名[下标] = 值;
查
查询数组长度
语法:
数组名.length
查询数组指定位置的数据
语法:
数组名[下标]
注意:
下标要在取值范围内,否则会产生数组下标越界异常
扩展
遍历:将数组或集合中的数据逐个取出
方式1:普通for循环
方式2:foreach(只能做遍历)
foreach语法:
for(数据类型 变量名:要遍历的数组或集合){
}
数据类型:遍历出的数据的数据类型
变量名:就是遍历出的数据
注意:foreach(增强for循环)在遍历时的速度是普通for的3倍
复制:
将数组A中的数据,逐个复制到数组中
思路:
1,创建新数组
注意:
1,新数组长度等于老数组长度
2,新数组的数据类型与老数组一致
2,遍历老数组
使用普通for循环
3,将老数组的值取出,赋值给新数组对应的位置
扩容:
将数组变大
思路:
1,创建一个新数组
注意:
1,新数组长度大于老数组长度
2,新数组的数据类型与老数组一致
2,遍历老数组
3,将老数组的值取出,赋值给新数组对应的位置
4,将新数组赋值给老数组
二维数组
概念:将数组作为数据存储在数组中
步骤:
1,声明
2,创建
3,使用
声明
数据类型[][] 数组名;
创建
静态创建
注意:声明与创建同时进行
语法:
数据类型[][] 数组名 = {
{值1,值2,值3,...},
{值4,值5,..},
{值6,值7,值8,值9,...},
...
};
动态创建
带值
语法:
数组名 = new 数据类型[][]{
{值1,值2,值3,...},
{值4,值5,..},
{值6,值7,值8,值9,...},
...
};
不带值
语法:
数组名 = new 数据类型[x][y];
x:二维数组中可容纳的一维数组的个数,必须在创建时说明
y:一维数组中可容纳的元素的个数,可以不写
注意:
二维数组的长度指的是其中存储的一维数组的个数
使用:
改
修改二维数组中指定的一维数组
数组名[下标] = 新数组;
注意:不能使用静态创建
修改二维数组中指定的位置的元素
数组名[x][y] = 新值;
x:元素所在的一维数组在二维数组中的位置
y:元素在一维数组中的位置
查
查询数组长度
数组名.length
查询二维数组中指定位置的一维数组
数组名[下标];
查询二维数组中指定位置的元素
数组名[x][y]
x:元素所在的一维数组在二维数组中的位置
y:元素在一维数组中的位置
遍历:
思路:
1,遍历二维数组,获取一维数组
2,遍历一维数组
可变参数
作用:解决实参的长度必须与形参一致的问题
语法:数据类型... 变量名
使用位置:形参末尾使用
注意:一个方法只能使用一个可变参数