您好,欢迎访问三七文档
数组本章目标掌握数组的基本用法如何声明一个数组如何分配空间如何赋值会应用数组解决简单的问题求平均值求最大、最小值排序Java测试结束后,老师给令狐冲分配了一个任务,计算全班(36人)的平均分为什么需要数组3-1intstu1=95;intstu2=89;intstu3=79;intstu4=64;intstu5=76;intstu6=88;……avg=(stu1+stu2+stu3+stu4+stu5…+stu36)/3636个变量36个变量太繁琐生活案例:博物架为什么需要数组3-2字画类好办法——分类放,易于找1、格子提供了存储空间2、每一类别都起一个名字3、每件物品都有个标号古玩类类比博物架:可不可以把数据归类存放?分类存放不同类型的数据为什么需要数组3-3int类型double类型152068012.515.666.7899.588.9aghfuchar类型数组在内存中的存储80100986778…82内存整型数组int[]b={100,98,…};整型变量inta=80;6764798995数组是一个变量,连续存储相同数据类型的一种结构int类型下标score[5]10234score[0]数组名称即“标识符”元素货架名标识符古玩物品编号元素下标物品类型元素类型数据数组定义使用数组:1、声明数组2、分配空间3、赋值4、处理数据如何使用数组int[]a;a=newint[5];a[0]=8;a[0]=a[0]*10;a880a[0]只声明未赋值,数组中个元素的值默认为0数组的声明Int[]score1;//Java成绩intscore2[];//C#成绩String[]name;//学生姓名声明数组:告诉计算机数据类型是什么1数据类型数组名[];数据类型[]数组名;数组初始化score=newint[30];avgAge=newint[6];name=newString[30];30……分配空间:告诉计算机分配几个格子数组属于引用数据类型2数据类型[]数组名=new数据类型[大小];声明数组并分配空间数组赋值2-1score[0]=89;score[1]=79;score[2]=76;……赋值:向分配的格子里放数据……30score[0]score[1]score[2]897976太麻烦!能不能一起赋值?3数组赋值2-2方法1:边声明边赋值方法2:动态地从键盘录入信息并赋值解决int[]score={89,79,76};Scannerinput=newScanner(System.in);for(inti=0;i30;i++){score[i]=input.nextInt();}int[]score=newint[]{89,79,76};使用数组求平均分2-1对数据进行处理:计算5位学生的Java课程平均分46080907085成绩单利用学生人数与数组下标的关系,从键盘输入学生的成绩使用数组求平均分2-2对数据进行处理:计算5位学生Java课程的平均分4Scannerinput=newScanner(System.in);for(inti=0;i5;i++){score[i]=input.nextInt();}数组的length属性2-1对数据进行处理:输入学生人数,求这些学生的平均分4数组名.length:查看数组的长度数组的length属性2-2对数据进行处理:计算5位学生Java课程的平均分4intsum=0;intnum=0;Scannerinput=newScanner(System.in);System.out.print(“请输入学生人数:”);num=input.nextInt();int[]score=newint(num);for(inti=0;iscore.length;i++){System.out.print(“请输入第“+(i+1)+”位学生的成绩:”);score[i]=input.nextInt();sum+=score[i];}System.out.print(“学生的平均成绩为:”+(double)sum/score.length);常见错误3-1publicclasszxw{publicstaticvoidmain(String[]args){int[]score=newint[];score[0]=89;score[1]=63;System.out.print(score[0]);}}编译出错,没有写明数组的大小常见错误3-2publicclasszxw{publicstaticvoidmain(String[]args){int[]score=newint[2];score[0]=89;score[1]=63;score[2]=63;System.out.print(score[0]);}}编译出错,数组越界常见错误3-1publicclasszxw{publicstaticvoidmain(String[]args){int[]score=newint[5];score={60,90,80,65,39};int[]score2;score2={60,90,80,65,39};}}编译出错,创建数组并赋值的方式必须在一条语句中完成求最大值3-1从键盘输入本次Java考试五位同学的成绩,求这五位同学中的最高分求最大值3-2擂台第一个元素到擂台85773597658597求最大值3-2max=stu[0];if(a[1]max){max=a[1];}if(a[1]max){max=a[1];}if(a[1]max){max=a[1];}……根据打擂台的规则:求最大值3-3//计算成绩最大值max=score[0];for(intindex=1;index5;index++){if(score[index]max){max=score[index];}}System.out.println(“本次考试的五位学生的最高分是:”+max);使用max存储擂主初识值:第一个元素为擂主循环打擂数组小结4-1Java中都有哪些数组类型intint[]doubledouble[]charchar[]floatfloat[]ScannerScanner[]RandomRandom[]数组小结4-2使用数组的方式方法1:方法2:方法3:int[]score;score=newint[36];score[0]=89;int[]score=newint[36];score[0]=89;int[]score=newint[]{89,79,76};或:int[]score={89,79,76};数组小结4-3声明数组并分配空间,但未赋值,数组各元素默认值?数值类型字符串:int[]score=newint[3];System.out.println(score[1]);String[]name=newString[3];System.out.println(name[1]);if(name[1]==null){System.put.println(“这个数组下标为1的没有数据”);}运行结果:默认值为0运行结果:默认值为null数组小结4-4有一个数列:8,4,2,1,23,344,121.循环输出数列的值2.求数列中所有数值的和3.猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数数组小结4-4小明要去买手机,他询问了4家店的价格,分别是2800元,2900元,2750元和3100元,显示输出最低价//计算最小值intmin=list[0]for(inti=0;ilist.length;i++){if(minlist[i]){min=list[i];//交换}}数组排序2-1使用java.util.Arrays类java.util包提供了许多存储数据的结构和有用的方法Arrays类提供许多方法操纵数组,例如:排序,查询Arrays类的sort()方法:对数组进行升序排列循环录入5位学生的java成绩,进行升序排序后输出结果Arrays.sort(数组名);数组排序2-2完整代码演示importjava.util.*//导入包……int[]score=newint[5];Scannerin=newScanner(System.in);System.out.print(“请输入5位同学的成绩:”);for(inti=0;i5;i++){score[i]=in.nextInt();//依次录入5位同学的成绩}Arrarys.sort(score);//排序for(intj=0;jscore.length;j++){System.put.println(score[j]);//输出结果}循环输入学生的成绩并存储在数组中数组中的元素被重新排列循环输出数组中的信息数组排序小结有一列乱序的字符,‘a’,‘c’,‘u’,‘b’,‘e’,‘p’,‘f’,’z’,排序并按照英文字母表的逆序输出importjava.util.*//导入包……String[]zimu=newString[8];Scannerin=newScanner(System.in);for(inti=0;i5;i++){System.out.print(“请输入第”+(i+1)+”个字母:”);zimu[i]=in.nextInt();//依次录入8个字母}Arrarys.sort(zimu);//排序for(intj=zimu.length-1;j=0;j--){System.put.println(zimu[j]);//输出结果}循环输入字母并存储在数组中数组中的元素被重新排列循环输出数组中的信息数组算法5-11、数组的复制arrA:arrB:21587631000000000215876310数组算法5-11、数组的复制……int[]shuzuA={1,2,2,3,4,5,6,7};int[]shuzuB=newint[shuzuA.length];for(inti=0;ishuzuA.length;i++){shuzuB[i]=shuzuA[i];//依次将shuzuA的8个元素值复制给shuzuB}for(intj=0;jshuzuB.length;j++){System.put.println(shuzuB[j]);//输出结果}数组B的长度就是数组A的长度循环复制数组元素值演示完整代码数组算法5-22、数组的查找:查找叫“麻子”的同学arrA:张三李四王二麻子每个元素依次查找,找到“麻子”显示“找到此人!”未找到显示“查无此人!”麻子数组算法5-22、数组的查找:查找叫“麻子”的同学System.put.print(“请输入要查找的学生的姓名:”);Stringname=in.next();String[]xm={”张三”,”李四”,”王二”,”麻子”};booleanflag=false;for(inti=0;ixm.length;i++){if(name.equals(xm[i]){flag=true;//查到将flag标识置为真break;}if(flag==true){System.put.println(“找到此人!”);//输出结果}else{System.put.println(“查无此人!”);设置一个标识完整代码数组算法5-33、数组的插入1791821245510016数组中个元素按升序排列,当最后一个数被替换,则需重新排序55与前一个元素比较大小,比前一个数小时,两者交换16162416211618数组算法5-33、数组的插入int[]shz={1,32,34,55,61,77};System.put.println(“请输入要插入的数据:”);intnum=in.nextInt();shz(shz.length-1)=num;for(inti=shz.length-1;i0;i--){if(shz[i]shz[i-1]){intt=shz[i];shz[i
本文标题:java数组
链接地址:https://www.777doc.com/doc-5429459 .html