一、数组的静态初始化
完整格式:数据类型[ ]数组名 = new 数据类型[ ]{元素1,元素2,...};
eg:int[ ] array = new int[ ]{11,22,33};
简写格式:数据类型[ ] 数组名 = {元素1,元素2,....};
eg:int[ ] array={11,22,33};
1、索引
:数组名[索引]=具体数据/变量
arr[ ] ={1,2,3}
0 1 2
开始条件:0 结束条件:数组的长度-1(最大索引)
//在Java中,关于数组的一个长度属性,length
调用方式:数组名.length
2、数组遍历
:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断...)
注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印。
扩展:自动的快速的生成数组的遍历方式(数组名.fori)
二、数组的动态初始化
动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值。
格式:数据类型[ ] 数组名 = new 数组类型[数组长度];
eg:int[ ] arr = new int[3];
补充:数组默认初始化值的规律
整数类型,默认为0 | 小数类型,默认为0.0 |
字符类型,默认为'/u0000'---空格 | 布尔类型,默认为false |
引用数据类型,默认为null |
特点:在创建的时候,由我们自己指定数组的长度,由虚拟机给出默认的初始化长度
三、数组动态初始化和静态初始化的区别
①动态初始化:手动指定数组长度,由系统给出默认初始值
⭐只明确元素个数,不明确具体数值,推荐使用动态初始化
eg:>使用数组容器来存储键盘录入的5个整数 >int[ ] arr = {???}; >int[ ] arr = new int[5]; |
②静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。
需求中已经明确了要操作的具体数据,直接静态初始化即可
eg:>将全班的学生成绩存入数组中11,22,33 >int[ ] arr ={11,22,33} |
四、二维数组
1、二维数组遍历
int[ ][ ] arr3={{1,2,3},{4,5,6,7,8}}; for(int i = 0;i<arr3.length;i++){ //外循环:遍历二维数组,得到里面的每一个一维数组 for(int j =0;j<arr3[i].length;j++){ //内循环:遍历一维数组,得到里面的每一个元素 System.out.print(arr3[i][j]+" "); } System.out.printIn( ); } |
2、二维数组的动态初始化
格式:数据类型[ ][ ] 数组名 =new 数据类型[m][n];
m表示这个二维数组,可以存放多少个一维数组
n表示每一个一维数组,可以存放多少个元素。
五、练习
练习一
需求:定义一个数组,存储1,2,3,4,5,遍历数组得到每一个元素,求数组里面所有的数据和。
练习二:变化数据
需求:定义一个数组,存储1,2,3,4,5,6,7,8,9,10.遍历数组得到每一个元素
要求:1、如果是奇数,则将当前数字扩大两倍
2、如果是偶数,则将当前数字变成二分之一。
练习三:求最值
练习四:遍历数组求和
需求:生成10个1~100之间的随机数存入数组。
1)求出所有数据的和
2)求所有数据的平均值
3)统计有多少个数据比平均值小
练习五:交换数组中的数据
需求:定义一个数组,存入1,2,3,4,5.按照要求交换索引对应的元素。
交换前:1,2,3,4,5
交换后:5,4,3,2,1
练习六:打乱数组中的数据
需求:定义一个数组,存入1~5.要求:打乱数组中所有数据的顺序。