一维数组
定义数组
数组是一个变量,存储相同数据类型的一组数据
声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间
在java中,定义数组的语法有以下两种。
1.数据类型 [] 数组名=new 数据类型 [ 数据长度 ];
如:int [] scores=new int [5];
2.数据类型 数组名 []=new 数据类型 [ 数组长度 ];
如:int scores []=new int [5];
注:
1.定义数组时要指定数组名和数组类型。
2.必须书写” [] “,表示定义一个数组,而不是一个普通的变量。
3.[数据长度]决定连续分配的空间大小,通过length可获得此长度。
4.数据类型用于确定分配的空间大小。
数组基本类型
标识符–>数组名
数组元素 -->值
元素下标:从0开始
元素类型 -->类型
元素表示与赋值
数组元素在数组中顺序排列序号,序号即为元素下标。
数组名 [下标值]
如:score[0]=65;//表示score数组中的第一个元素赋值为65
public class Demo1 {
public static void main(String[] args) {
//声明
int[] a;
String b[];
double[] c;
//分配空间,使用new关键字来分配空间,new关键字是java中优先级最高的
a = new int[5];
b = new String[6];
c = new double[4];
//赋值
a[0] = 10;
a[1] = 14;
a[2] = 18;
a[3] = 24;
a[4] = 33;
//声明的同时分配空间
char[] ch = new char[10];
float f[] = {
11.1f, 22.2f};//声明、分配空间并赋值
int[] d = new int[]{
1, 2, 3};
}
}
数组的初始化
初始化是:在定义数组的同时一并完成赋值操作。
语法格式如下:
1.数据类型 [] 数组名 = {值1,值2,值3,……,值n};
如:int score []={1,2,3…,n};
2.数据类型 [] 数组名 = new 数据类型 [] {值1,值2,值3,…,值n};
如:int score []=new int [] {1,2,3,…,n};
数组操作的两个常见问题
(1) 越界 ArrayIndexOutOfBoundsException:数组索引越界异常,是因为访问了不存在的索引
(2) 空指针 NullPointerException:空指针异常,是因为数组已经不指向堆内存了,然而继续用数组名去访问元素
使用数组计算最大、最小值和平均值
使用数组计算5名学生的平均分、最高分和最低分
public class pc1 {
public static void main(String[] args){
int [] scores=new int[5]; //定义长度为5的整形数组
double total=0; //总成绩
double avg=0; //平均分
int max=0; //最高分
int min=0; //最低分
Scanner sc=new Scanner(System.in);
System.out.println("请输入5个学生的笔试成绩:"