数组(Array)(就是一个容器,我们之前存数据用的是变量,变量一次性只可以存1个值,数组是可以一次性存储多个值的容器)
1、相同数据类型的集合
2、数组即可以存基本数据类型,也可以存引用数据类型
3、数组本身就是一种数据类型,数组是引用数据类型
数组的定义格式:
数据类型[ ]数组名=new 数据类型[数组的长度]
数组的初始化:
1、动态初始化(给定数组的长度,由计算机去给定初始值)
语法:数据类型[ ] 数组名 = new 数据类型[数组的长度]
2、静态初始化 (给定数组的初始值,由计算机给定数组的长度)
语法:数据类型[ ] 数组名 = new 数据类型[ ]{1,2,3,4}
简写:数据类型[ ] 数组名 = {1,2,3,4}
如何访问数组中的值(元素):
通过下标 index:从0开始的
格式:数组名[0]
注意:如果访问到超数组范围外的元素下标时,会出现数组下标越界异常
如何往数组里面存值(2种方式)
1、通过给数组的下标赋值
2、静态初始化赋值
数组的复制:
数组的长度,在创建出来就是固定的。
如果我们需要对已有数组进行追加元素可以通过数组的扩容,就是复制当前数组所有元素,到一个新的数组中
可以使用数组的api:Arrays.copyof(),可以完成数组的扩容或者缩容
int[] arr2= {1,2,3,4,5};
System.out.println(arr2.length);//5
int[] arr3=Arrays.copyOf(arr2, arr2.length+5);
System.out.println(arr3.length);//10
for (int i = 0; i < arr3.length; i++)
{ System.out.println(arr3[i]+" ");//1 2 3 4 5 0 0 0 0 0 }
需求: 声明一个double类型的数组,循环去接收8个学生的成绩, 计算出8个学生总分、平均分、最高分、最低分
double[]arr=new double[8];
double sum=0;
int min=0;
Scanner scanner=new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第"+(i+1)+"个同学的成绩");
arr[i]=scanner.nextDouble();
sum+=arr[i];
if(arr[min]>arr[i]) {
arr[min]=arr[i];
} }
System.out.println("总分为"+sum);
System.out.println("最小值为:"+arr[min]); }