一.什么是数组
1.数组的定义
数组是一个变量,存储相同数据类型的一组数据。声明一个变量就是在内存空间划出一块合适的空间
2.数组的基本要素
标识符 -->数组名
数组元素–>数组里面的每一个数据
元素下标–>从0开始的标记数字
元素类型–>数据的类型
二.数组的使用
1.声明数组
声明数组: 告诉计算机数据类型是什么。
数据类型 数组名[ ] ; 代码:int scores[];
数据类型[ ] 数组名 ; 代码:int[] scores;
注:声明数组时不规定数组长度。
2.分配空间
告诉计算机分配几个连续的空间
①数组名=new 数组类型[]; 代码:
scores = new int[30];
②声明数组并分配空间:数据类型[ ] 数组名 = new 数据类型[大小] ;
3.数组赋值
向分配的格子里放数据
①依次赋值
scores[0] = 89;
scores[1] = 79;
scores[2] = 76;
……
②边声明边赋值
int[ ] scores = {89, 79, 76};
int[ ] scores = new int[ ]{89, 79, 76};
----不能指定数组长度
③动态地从键盘录入信息并赋值
Scanner input = new Scanner(System.in);
for(int i = 0; i < 30; i ++){
scores[i] = input.nextInt();
}
4.数据处理
通过遍历数组,进行计算,可以使用增强for
for(int i = 0; i < scores.length; i++){
sum = sum + scores[i];
}
写为增强for的形式为:
for(int num:scores){
sum=sum+scores;
}
三.数据与内存
数组中,变量是存在占内存中,具体的数据存在内存中,如下图:
四.求最值
1.最大值max
int max=a[0];
for(int i=0;i<a,length;i++){
if(a[i]>max){
max=a[i]; //从头往后挨个跟max比较,比max大,就将值赋给max,最后得出最大的值。
}
}
2.最小值min
int min=a[0];
for(int i=0;i<a,length;i++){
if(a[i]<max){
min=a[i]; //从头往后挨个跟min比较,比min小,就将值赋给min,最后得出最小的值。
}
}
五.插入数值
①先给数组排序a[i](升序)
⑤新建数组b[i+1]=a[i]+0;(扩容)
②将要插入的数num从后往前比较,如果比num大,就后移
③当num<a[i]是,找到插入位置,将num插入
int b[]=Arrays.copyOf(a,a.length+1);
for(int i=a.length-1;i>=0;i--){
if(num<b[i]){
b[i+1]=b[i]; //比num大得多后移
}else {
b[i]=num; //b[i]已经后移置空,将num存入b[i]
}
}