定义:数组是代表一组数据,这组数据是相同数据类型(一般来说它们的逻辑意义也相同),
我们相当于使用一个“统一”的名称来管理一组数据,是相同类型数据的有序集合。
这个名称我们称为“数组名”,这组数据的总个数称为“数组的长度(length)”,
每一个数据我们称为“元素(element)”,每一个数据通过“数组名”+“下标/索引(index)”的方式来表示。
数组的长度获取:数组名.length
数组的元素表示:数组名[下标]
下标的范围:[0, 数组名.length-1]
声明/定义数组 需要确定3个要素:
(1)元素的类型:可以是基本数据类型也可以是引用数据类型
(2)数组名称:命名习惯和规范同普通的变量名一样
(3)数组的维度,暂时先都声明一维数组
语法格式:
元素的类型[] 数组名;
例如:int[] scores //存储一个小组的学员的成绩
String[] names //存储一个小组的学员的姓名
char[] letters //存储26个英文字母
数组的初始化:
(1)数组的初始化有两种方式
A:静态初始化
B:动态初始化
(2)初始化的目标
A:数组的元素的个数,即数组的长度==>决定我们在内存(堆内存)中需要给他开辟多大空间
而且数组的长度一旦确定,就不能修改了。
B:数组的元素值
静态初始化
语法格式:数组名 = new 元素的数据类型[]{元素的值列表};
例如:letters = new char{'a','b','c','d','e'}
特例:当数组的声明和静态初始化在一个语句中完成的,
可以省略右边的 “new 元素的数据类型[]”,为:
元素的数据类型[] 数组名 = {元素的值列表}; 例如:char[] letters = {'a','b','c','d','e'}
public class TestArray1{
public static void main(String[] args) {
char[] letters = {'a','b','c','d','e'}; //这个静态初始化,确定了,letters数组的长度为5,元素分别是'a','b','c','d','e'
System.out.println("数组的长度:"+letterrs.length);
// System.out.println("数组的元素值:" + letters);//不能这样直接显示输出的元素值
//letters数组名中存储的是这组数据的内存的首地址
System.out.println("数组的第1个元素值:"+letters[0]);
System.out.println("数组的第2个元素值:"+letters[1]);
System.out.println("数组的第3个元素值:"+letters[2]);
System.out.println("数组的第4个元素值:"+letters[3]);
System.out.println("数组的第5个元素值:"+letters[4]);
//System.out.println("数组的第6个元素值:"+letters[5]); //报错,ArrayIndexOutOfBoundsException数组下标越界
}
}
动态初始化
语法格式: 数组名 = new 元素的数据类型[长度];
例如:letters = new char[5]
如果未指定数组的元素内容,光指定数组的长度了,那么元素就是默认值。
byte,short,int,long:0
float,double:0.0
char:\u0000 即编码值为0的空字符
boolean:false
引用数据类型:null
public class TestArray2{
public static void main(String[] args) {
int[] scores;
//存储5个学员的成绩
scores = new int[5]; //在new 数据类型[长度] 后面的中括号中是数组的长度,在数组名[下标]
System.out.println("数组的长度:" + scores.length);
System.out.println("第1个学员的成绩:" + scores[0]);//0 数组名[下标]数组名后面的中括号中是下标
System.out.println("第2个学员的成绩:" + scores[1]);//0
System.out.println("第3个学员的成绩:" + scores[2]);//0
System.out.println("第4个学员的成绩:" + scores[3]);//0
System.out.println("第5个学员的成绩:" + scores[4]);//0
}
}
数组的遍历或数组的迭代:
for(int i=0; i<数组名.length; i++){
数组名[i]代表其中一个元素
}
快捷键:itar
例如:
public class TestArray3 {
public static void main(String[] args) {
char[] letters = {'a','b','c','d','e'};
//遍历显示数组的元素值
//数组下标范围:[0, letters.length-1]
for(int i=0; i<letters.length; i++){
System.out.println("第" + (i+1) +"个字母是:" + letters[i]);
}
}
}
数组的元素的赋值:
数组名[下标] = 常量值;
数组名[下标] = 表达式; //计算表达式,方法调用表达式
可以手动赋值,scores[0] = 89;
scores[1] = 99;
scores[2] = 100;
scores[3] = 78;
scores[4] = 90;
//可以从键盘输入为元素赋值
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.print("请输入第"+(i+1) +"个学员的成绩:" );
//scores[i] 是数组的一个元素,相当于一个变量,它可以用来接收一个xx值
scores[i] = scanner.nextInt();
}