学到数组了,记录下学习心得,daydayup!
1,数组是一类容器,用来储存一批相同类型的数据(不可以混类储存)
正确表示:int [ ] age= new [ ] {18,19,20,30}
错误表示:string [ ] name = new [ ]{"黎明" ,"小红","梨花",14,27}
(字符和数字不能一起存储,只能同类存储)
2,已经有了变量,为什么使用数组?
因为编写简洁,修改方便。像是点名系统,统计系统,数组的使用会减轻编程的工作量
3,数组的分类
数组分为静态数组及动态数组
4,数组的工作原理
和一般变量不同,数组是引用变量,不是直接定义变量,而是在内存区定义出一块空间,使数据存在内存里,在需要使用的时候,从内存区引用出来
下面先来谈谈静态数据和动态数组
静态数组是定义好长度和数据的数组,表示如下
类型[] 数组名字= new 类型[] {数据1,数据2,数据3}
练习:有五个学生,年龄分别为13,14,15,16,17,请用数组的方式记录下来
int[] age = new int[]{13, 14, 15, 16, 17}
同时数组的表示会有两种简便写法,如下
类型[] 数组名字= {数据1,数据2,数据3}
类型 数组名字 [] ={数据1,数据2,数据3}
第一种是规范写法,第二种是常用写法,第三种不太推荐使用
数组是引用变量,数据是定义在内存空间里的,为了方便引用,存储在内存中的数据每一个都存在编号,第一个数据为编号0,第二个数据为编号1
实验:现在有一组数组String [] name ={"李磊","王安石","李白"},请输出”李磊“这个名字
实验思路:李磊在第一个编号,数组储存在内存区的第一个编号为0,所以输出name[0]
public class arraydemo2 {
public static void main(String[] args) {
String [] name ={"李磊","王安石","李白"};
System.out.println(name[0]);
}
}
实验效果:成功输出李磊
把已有的数组里的数据替换为其他数据
实验:现在有一组数组String [] name ={"李磊","王安石","李白"},现在李磊改名为”梨花“,请修改数组
public class arraydemo2 {
public static void main(String[] args) {
String [] name ={"李磊","王安石","李白"};
name[0]="梨花";//把李磊修改成梨花
System.out.println(name[0]);
}
}
实验效果:成功输出梨花
数据过多时,直接数不太直观,可以通过length知道存在多少个数据
练习:已知int[] sd = new int[]{13, 14, 15, 16, 17},请用length知道这个数组里含有多少个数据
int[] sd = new int[]{13, 14, 15, 16, 17};
System.out.println(sd.length);
实验结果:输出5
引入循环结构,通过length语句一个一个输入数据
练习:已知数组int[] se = {12, 12, 13, 14, 14},请通过for语句输出全部数值
int[] se = {12, 12, 13, 14, 14};
for (int i = 0; i < se.length; i++) {
System.out.println(se[i]);
}
实验结果:可以依次输出12,12,13,14,14
练习:已知公司有5个销售人员,他们的业绩分别为12,14,25,12,24,问公司的总业绩为多少?
int [] yeji = {12,14,25,12,24};
int sum = 0;
for (int i = 0; i < yeji.length; i++) {
sum += yeji[i];
}
System.out.println(sum);
可以输出为87
动态数组是只定义好长度不定义数据的数组,表示如下
类型 [] = new 类型 [数据数量]
例:请建立一个名为lucy可以存10个数据的数据
int [] lucy= new int[10]
其余操作和静态数据一模一样,不做过多叙述
实验:五位裁判给选手打分,平均分为选手的最终得分
实验思路:首先定义一个长度为5的动态数组。因为要打分,所以引入scanner(扫描器),又因为要算最终得分,所以引入循环结构进行累加
import java.util.Scanner;
public class array {
public static void main(String[] args) {
int[] chengji = new int[5];
int sumw = 0;
Scanner ll =new Scanner(System.in) ;
for (int i = 0; i < chengji.length; i++) {
System.out.println("第"+(i + 1)+"位老师请打分");
chengji[i]= ll.nextInt();
sumw += chengji[i];
}
System.out.println(sumw / chengji.length);
}
}
实验结果:通过自定义输出数值,可以得出平均分
静态数组和动态数组在语法功能上没有什么不同。但根据语法结构,适用的业务有所不同
静态数组:适用于已经知道数据内容的场合,例如:点名系统,统计系统等
动态数组:适用于自行输入数据的场合,例如:比赛记分,数据检测等
---------------------------------------------------------------------------------------------------------------------------------
最后
如果您看到了这篇文章,同时您也在学习java,希望您阅读这篇文章,希望与您一起讨论
基于黑马程序员的java学习笔记(持续更新)