数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩
1、 声明数组
语法: 数据类型[ ] 数组名;
或者 数据类型 数组名[ ];
其中,数组名可以是任意合法的变量名,如:
2、 分配空间
简单地说,就是指定数组中最多可存储多少个元素
语法: 数组名 = new 数据类型 [ 数组长度 ];
其中,数组长度就是数组中能存放元素的个数,如:
话说,我们也可以将上面的两个步骤合并,在声明数组的同时为它分配空间,如:
int[] scores=new int[5];
3、 赋值
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩
scores[0]=89;
scores[1]=90;
4、在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成,如
int[] scores={1,2,3,4};
等价于:
int[] scores=new int[]{1,2,3,4};
5、int[ ] score = new int[ ];错误,没有指定长度
int[ ] score = new int[ 4 ] { 90, 12, 34, 77 };错误 在声明数组的同时赋值时不能指定数组长度
int score = { 78, 23, 44, 78 };错误应该为int[] score={78,23,44,78};
int score[ ] = new int[ ] { 34, 90, 87, 54, 24 };正确
6、 数组名.length 用于获取数组的长度
ublic class nums {
public static void main(String[] args) {
int[] nums=new int[]{61,23,4,74,13,148,20};
int max=nums[0];
int min=nums[0];
int sum=0;
double avg=0;
for(int i=0;i<nums.length;i++){
if(nums[i]>max){
max=nums[i];
}else if(nums[i]<min){
min=nums[i];
}
sum=sum+nums[i];
}
avg=sum/nums.length;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
输出结果:数组中的最大值:148
数组中的最小值:4
数组中的平均值:49.0
7、使用 Arrays 类操作 Java 中的数组
Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等
<1> 排序
语法: Arrays.sort(数组名);
<2> 将数组转换为字符串
语法: Arrays.toString(数组名);
可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
输出数组nums中的元素:[25,7,126,53,14,86]
8、foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思
**for(元素类型 元素变量:遍历对象){
执行的代码;
}**
分别使用 for 和 foreach 语句来遍历数组
9、二维数组
<1>声明数组并分配空间
数据类型[][] 数组名;
数组名=new 数据类型[行的个数][列的个数]
或者
数据类型[][] 数组名=new 数据类型[行的个数][列的个数]
<2> 赋值
比如num[0][0]=12;
或者
int[][] num={{1,2},{2,4}};
<3>处理数组
运行结果:
123
456
需要了解的:在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组,如下所示:
运行结果:
1
2
3