3.0 数 组
3.01数组介绍
数组:指的是一种容器,可以用来存储同种数据类型的多个值。
3.02 数组的定义与静态初始化
1.数组的定义分为两种格式
2.数据的初始化
初始化就是在内存中,伟数组容器开辟空间,并将数据存入容器中的过程。
3.数组的静态初始化
①完整格式:数据类型[ ]数组名=new 数据类型[ ]{元素1,2,3};
范例:int[ ]array=new int[ ]{11,22,33}
②简化格式:数据类型[ ]数组名{元素1,2,3};
范例:int[ ] array2={11,22,33};
案例操作:
注:直接打印数组名是不会出现数组元素的,而是会出现地址值,例如:[D@776ec8df, [ 代表的是当前数组,D代表的是数据类型为double类型(以此可知其他),@为固定格式,代表一个间隔符号,只有776ec8df才是数组的地址值(十六进制),平时大家都会习惯性的把这个整体叫做这个数组的地址值。
2.03 数组元素访问
数组元素访问的格式为:数组名[ 索引];
索引:也叫做下标,角标;
索引特点:从0开始,逐个+1增长,连续不间断
(我们可以通过索引把数组中的元素拿出来用,也可以把元素添加到数组当中去)
案例:
2.04 数组的遍历
数组的遍历就是将数组中所有的内容取出来,取出来之后可以(打印、求和、判断)
注:(遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!)
案例练习一:遍历数组并求和
需求:定义一个数组,存储1,2,3,4,5,遍历数组得到的每一个元素,求数组里面所有的数据和。
案例练习二:统计个数
需求:定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历数组每一个元素,统计数组里面一共有多少个能被3整除的数字。
案例联系三:变化数据
需求:定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历数组得到每一个元素。要求:1.如果是奇数,则将当前数字扩大两倍。2.如果是偶数,则将当前数字变成二分之一。
2.05 数组的动态初始化
1.动态初始化
初始化时只指定数组长度,由系统为数组分配初始值。
格式为:数据类型[ ] 数组名 =new 数据类型 [数组长度];
范例:int[ ]arr =new int [3];
2.数组默认初始化规律
①整数类型:默认初始化值0;
②小数类型:默认初始化值0;
③字符类型:默认初始化值‘/u0000’空格
④布尔类型:默认初始化值false
⑤引用数据类型:默认初始化值”null
3.数组动态初始化和静态初始化的区别
①动态初始化:手动指定数组长度,由系统默认初始化值。
(只明确元素个数,不明确具体数值,推荐使用动态初始化。)
②静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。
(需求中已经明确了要操作的具体数据,直接静态初始化即可。)
2.06 数组常见操作
练习一:求最值
需求:已知数组元素为{33,5,22,44,55}
请找出数组中最大值并且打印在控制台
思路:①定义max变量准备记录擂台上的变化
int max =arr[0];
②遍历数组获取每一个元素。
③让每一个元素跟max进行比较,如果找到更大的就让max记录该元素。
练习二:遍历数组求和
需求:生成10个1-100之间的随机数存入数组。
①求出所有数据的和;
②求所有数据的平均数;
③统计有多少个数据比平均值小。
练习三:交换数组中的数据
需求:定义一个数组,存入1,2,3,4,5.按照要求交换索引对应的元素。
交换前:1,2,3,4,5;
交换后:5,4,3,2,1.
练习四:打乱数组中的数据
需求:定义一个数组,存入1-5.要求打乱数组中的所有数据的顺序。