java中数组的学习完整版一.docx
- 文档编号:17599623
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:26
- 大小:85.09KB
java中数组的学习完整版一.docx
《java中数组的学习完整版一.docx》由会员分享,可在线阅读,更多相关《java中数组的学习完整版一.docx(26页珍藏版)》请在冰点文库上搜索。
java中数组的学习完整版一
1.知识点
一维数组:
定义、初始化、使用(相关的算法,常用系统类的使用)
多维数组:
定义、初始化、使用
增强for循环,break、continue控制语句的学习
2.讲解
什么是数组?
例子
//要求把一个班的一门课的成绩,加起来求平均值;
importjava.util.*;
classAverage{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
floatavg=0;
floatsum=0;
intcount=1;
while(count<=3){
sum=sum+sc.nextFloat();
count++;
}
avg=sum/(count-1);
System.out.println("平均值是:
"+avg);
System.out.println("程序结束");
}
}
//新要求:
我要在输出平均值的同时,也要将这门课的最高分,最低分,同时也要能看到这门的成绩
数组概念:
一组能够存储相同数据类型值的变量的集合。
在java中我们本着一切是对象的原则,我们把数组在java中看成是对象,数组对象。
数组是最基本的引用型数据类型。
一维数组的知识点
定义方法:
1、三步法
A、int[]arr;用来申明数组的引用,在栈中为arr开辟内存;
B、arr=newint[5];这是为数组arr在堆中为数组元素开辟6个存储单元;
C、把数组在堆中的起始位置给了arr这个引用变量
*一般我们的程序在运行时,我们为局部变量在栈中开辟内存,而为对象(对象属性)在堆中开辟内存。
为对象方法在方法区开辟内存空间。
为类的属性,在静态区开辟内存空间。
具体的内存图:
2、一步法:
A、int[]arr=newint[6];//这样做完后,arr中有6个元素,它们的默认值是0;
B、int[]arr=newint[]{1,2,3,4};//这样这个数组arr中的元素个数是四个,并且初始值为1,2,3,4;
C、int[]arr={1,2,3,4};//这种做法是静态的声明方法,是为了给c转过来的程序员,方便使用。
importjava.util.*;
classAverage1{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
floatavg=0;
floatsum=0;
intcount=0;
intn=0;
System.out.println("班级人数:
");
try{
n=sc.nextInt();
}catch(InputMismatchExceptione0){
}
float[]cj=newfloat[n];//完成数组的声明
System.out.println("开始输入班级成绩:
");
while(count try{//完成数组的元素的引用和初始化 cj[count]=sc.nextFloat(); sum+=cj[count]; count++; }catch(InputMismatchExceptione1){ } } avg=sum/n;//avg=sum/count; for(inti=0;i //length在这里是数组对象的一个静态属性,它始终存储的是数组的长度。 System.out.print(cj[i]+": "); } System.out.print("\b"); System.out.println("平均值: "+avg); System.out.println("程序结束"); } } 通过上面的例子我们完成了一维数组的定义,初始化,并且也完成了数组的输出。 数组最大值、最小值 importjava.util.*; classScoreHandler{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); floatavg=0; floatmax=0; floatmin=0; floatsum=0; intcount=0; intn=0; StringBuilderresult=newStringBuilder();//这非同步的字符串缓冲类 System.out.println("班级人数: "); try{ n=sc.nextInt(); }catch(InputMismatchExceptione0){ } float[]cj=newfloat[n];//完成数组的声明 System.out.println("开始输入班级成绩: "); while(count try{//完成数组的元素的引用和初始化 cj[count]=sc.nextFloat(); sum+=cj[count]; count++; }catch(InputMismatchExceptione1){ } } avg=sum/n;//avg=sum/count; //求最高分 max=cj[0]; for(inti=1;i if(max max=cj[i]; } } //求最低分 min=cj[0]; for(inti=1;i if(min>cj[i]){ min=cj[i]; } } //完成数组的输出 for(inti=0;i //System.out.print(cj[i]+": "); result.append(cj[i]+": "); } result.deleteCharAt(result.length()-1); //result.delete(result.length()-1,result.length()); //System.out.print(result.substring(0,result.length()-1)); //result.setCharAt(result.length()-1,''); System.out.print(result); System.out.println(); System.out.println("平均值: "+avg+": 最高分: "+max+": 最低分: "+min); System.out.println("程序结束"); } } 以上是通过分步来求最大、最小;下面我们把求最大最小的过程进行封装成一个方法来简化求解过程,方便以后多次求解同类问题。 importjava.util.*; classScoreHandler1{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); floatavg=0; floatmax=0; floatmin=0; //floatsum=0; intcount=0; intn=0; StringBuilderresult=newStringBuilder();//这非同步的字符串缓冲类 System.out.println("班级人数: "); try{ n=sc.nextInt(); }catch(InputMismatchExceptione0){ } float[]cj=newfloat[n];//完成数组的声明 System.out.println("开始输入班级成绩: "); while(count try{//完成数组的元素的引用和初始化 cj[count]=sc.nextFloat(); //sum+=cj[count]; count++; }catch(InputMismatchExceptione1){ } } //同过调用求平均值的放法来求一门课的平均值 avg=average(cj); //求最高分 max=maxScore(cj); //求最低分 min=minScore(cj); //完成数组的原样输出 for(inti=0;i //System.out.print(cj[i]+": "); result.append(cj[i]+": "); } //修剪输出的数组字符串中的": "号 result.deleteCharAt(result.length()-1); //result.delete(result.length()-1,result.length()); //System.out.print(result.substring(0,result.length()-1)); //result.setCharAt(result.length()-1,''); System.out.print(result); System.out.println(); System.out.println("平均值: "+avg+": 最高分: "+max+": 最低分: "+min); System.out.println("程序结束"); } //功能方法的分解,封装。 //求平均值的方法 publicstaticfloataverage(float[]arr){ floatavg=0; floatsum=0; for(inti=0;i sum+=arr[i]; } avg=sum/arr.length; returnavg; } //求最高分方法 publicstaticfloatmaxScore(float[]arr){ floatmax=arr[0]; for(inti=1;i if(max max=arr[i]; } } returnmax; } //求最低分方法 publicstaticfloatminScore(float[]arr){ floatmin=arr[0]; for(inti=1;i if(min>arr[i]){ min=arr[i]; } } returnmin; } } 方法的定义(声明): 方法就是一段功能明确的程序,被命名的,可以再程序中反复调用的程序段。 [访问修饰符][普通修饰符][返回值类型]方法名([形式参数])[throws]{ 方法体; [return;] } Eg: publicstaticfloatminScore(float[]arr){ floatmin=arr[0]; for(inti=1;i if(min>arr[i]){ min=arr[i]; } } returnmin; } 方法的重载: 两个方法的名字一样,但参数的个数或类型或顺序不一样,这时我们说方法法生了重载。 其中我们把方法中的方法名,以及参数的个数,类型,顺序,叫做方法的型构。 换句话说我们可以说如果两个方法的型构不一样,我们说着两个方法发生了重载。 publicstaticvoidscoreInput(float[]arr,Scannersc){ inti=0; while(i //完成数组的元素的引用和初始化 try{ arr[i]=sc.nextFloat(); //sum+=cj[count]; i++; }catch(InputMismatchExceptione){ System.out.println(e.getMessage()); } } } //输入方法二(这里发生了方法的重载) publicstaticvoidscoreInput(float[]arr){ Scannersc=newScanner(System.in); inti=0; while(i //完成数组的元素的引用和初始化 try{ arr[i]=sc.nextFloat(); //sum+=cj[count]; i++; }catch(InputMismatchExceptione){ System.out.println(e.getMessage()); } } } 二维数组: 是由若干一维数组组成。 它包含行和列;一行就是一个一维数组。 所以我们在声明二维数组时可以一次到位的声明二维数组,也可以多次声明多个一维数组来完成二维数组的声明。 二维数组的声明和使用 int[][]arr=newint[2][2]; 也可以 int[][]arr; arr=newint[2][3]; classArray2{ publicstaticvoidmain(String[]args) { intarr[][]=newint[2][2]; System.out.println("二维数组的输入"); //输入 for(inti=0;i for(intj=0;j arr[i][j]=j; } } //输出 System.out.println("二维数组的输出"); for(inti=0;i for(intj=0;j System.out.print(arr[i][j]+""); } System.out.println(); } System.out.println("结束! "); } } 也可以 int[][]arr=newint[][]{{2,2},{2,2}}; classArray3{ publicstaticvoidmain(String[]args) { int[][]arr=newint[][]{{2,2},{2,2}}; //输出 System.out.println("二维数组的输出"); for(inti=0;i for(intj=0;j System.out.print(arr[i][j]+""); } System.out.println(); } System.out.println("结束! "); } } 也可以 int[][]arr={{2,2},{2,2}}; classArray4{ publicstaticvoidmain(String[]args) { int[][]arr={{2,2},{2,2}}; //输出 System.out.println("二维数组的输出"); for(inti=0;i for(intj=0;j System.out.print(arr[i][j]+""); } System.out.println(); } System.out.println("结束! "); } } 也可以 int[][]arr=newint[2][]; arr[0]=newint[2]; arr[1]=newint[3]; classArray5{ publicstaticvoidmain(String[]args){ int[][]arr=newint[2][]; arr[0]=newint[2]; arr[1]=newint[3]; System.out.println("二维数组的输入"); //输入 for(inti=0;i for(intj=0;j arr[i][j]=j; } } //输出 System.out.println("二维数组的输出"); for(inti=0;i for(intj=0;j System.out.print(arr[i][j]+""); } System.out.println(); } System.out.println("结束! "); } } 二维综合 //计算一个班英语,数学,计算机科目的最高、最低分以及平均分。 importjava.util.*; classScoreHandler4{ staticfinalString[]KM={"英语","数学","计算机","体育","政治","网络"}; publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); intpersonNum=0;//班级人数 intclassNum=0; //成绩记录相关变量声明 float[][]cj=null; float[][]tongJi=null;//约定依次统计各门科目平均值,最高分,最低分;科目顺序是英语,数学,计算机 //输出结果的处理变量声明 StringBuilderresult[]; //完成科目数量的输入 System.out.println("班级课程数目: "); try{ classNum=sc.nextInt(); }catch(InputMismatchExceptione0){ } System.out.println("班级人数: "); //完成班级人数的输入 try{ personNum=sc.nextInt(); }catch(InputMismatchExceptione0){ } //完成成绩记录数组的初始化 cj=newfloat[classNum][personNum]; //完成结果统计数组的初始化 tongJi=newfloat[3][classNum]; //输出结果的处理变量初始化 result=newStringBuilder[classNum]; for(inti=0;i result[i]=newStringBuilder(); } //班级各门课目成绩的输入 System.out.println("成绩输入开始: "); scoreInput(cj); //通过调用求平均值的放法来求每门课的平均值 //求最高分 //求最低分 for(introw=0;row for(intcol=0;col switch(row){ case0: tongJi[row][col]=average(cj[col]);break;//计算各门课目平均值,依次为英语,数学,计算机 case1: tongJi[row][col]=maxScore(cj[col]);break;//计算各门课目最高分,依次为英语,数学,计算机 case2: tongJi[row][col]=minScore(cj[col]);break;//计算各门课目最低分,依次为英语,数学,计算机 } } } //修剪输出的数组字符串中的": "号并完成数组的原样输出 for(introw=0;row result[row]=scoreOutput(cj[row]);//处理好英语数学计算机的原样成绩的输出格式 } //结果的输出 for(introw=0;row /*switch(row){ case0: System.out.println("英语原始成绩: "+result[row]); for(intcol=0;col switch(col){ case0: System.out.print("英语平均值: "+tongJi[col][row]+"");break; case1: System.out.print("英语最高分: "+tongJi[col][row]+"");break; case2: System.out.print("英语最低分: "+tongJi[col][r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 数组 学习 完整版