数组的本质:一串连续的的内存空间。
数组的第一种定义语法:
数据类型[] 数组名 = new 数据类型[整数];
整数:数组的长度
我们通过数组的变量名(数组的整地址)加上数组的下标或者索引可以对数组的每一个值进行操作
获得数组的长度使用数组的属性lenth
例如:
public static void main(String[] args) {
//定义一个5个长度整数类型的数组
int[] arr = new int[5];
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
//给每一项存值
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
//输出每一项
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
//获得数组的长度
int length = arr.length;
System.out.println("数组的长度是:" + length);
}
结果:
我们通过数组的下标来操作数组,如果你超出下标,就会报下标越界的错误
数组的第二种定义语法:
数据类型[] 数组变量名 = {值1,值2,....}
例如:
public static void main(String[] args) {
//数组的长度由value的数量来决定
int[] arr = {20,30,40,50};
System.out.println("数组的长度" + arr.length);
//用循环遍历数组里所有的数据
for (int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
结果是:
数组的第三种定义语法:
数据类型[] 数组变量名 = new 数据类型[]{值1,值2,值3,....}
例如:
public static void main(String[] args) {
//定义一个字符类型的数组
char[] arr = new char[]{'a','b','c'};
//用循环遍历数组里所有的数据
for (int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
结果:
案例1:计算方差
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入5个数");
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
int e = sc.nextInt();
double sum = (a+b+c+d+e)/5;
double avg = 0;
avg+= (a-sum)*(a-sum);
avg+= (b-sum)*(b-sum);
avg+= (c-sum)*(c-sum);
avg+= (d-sum)*(d-sum);
avg+= (e-sum)*(e-sum);
avg = avg/5;
System.out.println(avg);
}
这种方法十分死板,如果是十个数,一百个数,定义的变量会特别的多,代码会一直的重复。
案例2:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[]a = new int[5];
int sum = 0;
for (int i = 0;i<a.length;i++){
a[i] = sc.nextInt();
sum+=a[i];
}
double avg = sum/5;
double vari = 0;
for (int i =0;i<a.length;i++){
vari +=((a[i]-avg)*(a[i]-avg));
}
vari = vari/5;
System.out.println(vari);
}
数组和循环的配合,可以使解题方法更为灵活,且不需要定义过多的变量。
二维数组:二维数组就是集合中套集合。
数据类型[][] 数组名 = new 数据类型[整数][]
二维数组的第一维必须指定
注意:必须明确外围数组名
数据类型[][] 数组名 = {{值1,值2,值3},{值4,值5,值6},.....}
例子:
int[][] array = new int[3][4];
int[][] arr = {{1,2,3},{4,5,6},{7,8,9},.....}