Java语言-第6章-数组_第1页
Java语言-第6章-数组_第2页
Java语言-第6章-数组_第3页
Java语言-第6章-数组_第4页
Java语言-第6章-数组_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于java语言深入理解程序逻辑第八章

数组回忆两个String变量怎么进行比较?String类中有哪些常用方法?String类和StringBuffer有什么区别?Date类的作用?SimpleDateFormat有什么作用?学习内容一维数组的概念和应用二维数组的概念和应用能力目标理解并掌握Java中一维数组的概念和使用理解二维数组的概念和使用为什么要使用数组6

唉,有这么多不同主题的书。在哪里才能找到有关中国音乐的书呢?为什么要使用数组文学类计算机类西方音乐类中国音乐类容器中保存的物品日常生活中的容器为什么要使用数组intresult1;intresult2;............intresult49;intresult50;过程繁琐变量定义太多操作变量不方便在程序中存储50个学生的学习成绩Java中的数组Java中的数组的概念Java中的数组就是存放一组相同类型数据元素的集合result数组名result[0]result[49]数组下标从0开始。数组中每个变量用“数组名[下标]”标示一维数组的声明类型[]数组名或者类型数组名[];类型说明符,说明数组的类型数组名,用标识符命名Java中的数组数组的声明和定义一维数组的定义数组名的命名规那么与变量名的命名规那么相同“[]”是数组的标志,不能用圆括号或者其他符号代替int[]x=newint[5];//正确在Java语言中,不能在声明数组时指定数组的长度,而应该在定义时指定,例如:intx[5];//编译时将出错类型[]数组名=new类型[常量表达式];int[]r=newint[5];r[0]r[1]r[2]r[3]r[4]数组的元素的个数,数组的下标从0变化到常量达式的值减1数组的声明和定义一维数组的默认初始化classTest{

publicstaticvoidmain(String[]args){

int[]x=newint[3];

//第一个元素下标从零开始

System.out.println(“第一个元素是:”+x[0]); System.out.println(“第二个元素是:”+x[1]); System.out.println(“第三个元素是:”+x[2]); } }执行结果为:第一个元素是:0第二个元素是:0第三个元素是:0数组中的数值型元素〔包括byte、char、int、short、float、double、long〕的默认值都是0。布尔型的默认值是false数组的声明和定义一维数组的显示初始化//定义整型数组int[]intArray_1=new

int[10];int[]intArray_2={1,2,3,4,5,6,7,8,9,0};int[]intArray_3=new

int[]{0,9,8,7,6,5,4,3,2,1};//定义字符串数组String[]stringArray_1=newString[10];String[]stringArray_2={"","","","","","","","","",""};String[]stringArray_3=newString[]{"","","","","","","","","",""};//求数整型组的长度System.out.print(intArray_1.length+"");System.out.print(intArray_2.length+"");System.out.print(intArray_3.length+"");System.out.println();//求字符串数组的长度System.out.print(stringArray_1.length+"");System.out.print(stringArray_2.length+"");System.out.print(stringArray_3.length+"");System.out.println();数组的赋值单个赋值数组的初始化可以使用{}来进行整体赋值,可是数组一旦定义,就不能再进行整体赋值了。此时,就需要对数组元素逐个进行赋值。int[]intArray=newint[5];//为数组逐个赋值intArray[0]=5;intArray[1]=4;intArray[2]=3;intArray[3]=2;intArray[4]=1;//逐个输出数组的值System.out.println("intArray[0]="+intArray[0]);System.out.println("intArray[1]="+intArray[1]);System.out.println("intArray[2]="+intArray[2]);System.out.println("intArray[3]="+intArray[3]);System.out.println("intArray[4]="+intArray[4]);在赋值时需要使用下标索引在访问时需要使用下标索引数组的赋值循环赋值数组最常用的赋值方式是循环赋值,依靠for语句进行逐个遍历赋值。//定义一个数组,长度为8int[]array=newint[8];//为数组进行循环赋值,赋值为下标的2倍for(inti=1;i<9;i++){ array[i-1]=i*2;}

//使用for-in语句遍历数组并输出for(intn:array){ System.out.print(n+"\t");}System.out.println();冒泡排序冒泡排序:每次比较相邻两数,小的交换到前面每轮结束后最大的数交换到最后16259902316259239092523第一轮:比较了4次第二轮:比较了3次第三轮:比较了2次第四轮:比较了1次冒泡排序冒泡排序:16259902316259239092523第一轮:比较了4次第二轮:比较了3次第三轮:比较了2次第四轮:比较了1次for(j=0;j<scores.length

;j++){if(scores[j]>scores[j+1]){

//交换元素temp=scores[j];scores[j]=scores[j+1];scores[j+1]=temp;}}-1-2-3-4冒泡排序如何用二重循环将5个数字排序?N=55个数字存放在一维数组中外层循环控制比较多少轮,循环变量i内层循环控制每轮比较多少次,循环变量jfor(i=1;i<N;i++){for(j=0;j<N-i;j++){//比较j和j+1位置的元素//如果前大后小就交换}}冒泡排序关键代码分析:for(i=1;i<scores.length;i++){for(j=0;j<scores.length-i;j++){if(scores[j]>scores[j+1]){

//交换元素temp=scores[j];scores[j]=scores[j+1];scores[j+1]=temp;}}}经过一轮比较交换,最大的元素换到了最后面外层循环条件:从1开始,到数组长度内层循环条件:数组长度-i冒泡排序速记口诀〔升序〕:N元数组冒泡序两两相比小前移外层循环从1始内层长度减i去Arrays工具类排序使用java.util.Arrays类java.util包提供了许多存储数据的结构和有用的方法Arrays类提供许多方法操纵数组,例如:排序,查询Arrays类的sort()方法:对数组进行升序排列Arrays.sort(数组名);int[]intArray=new

int[]{4,8,6,0,1,9,5,2,3,7};Arrays.sort(intArray);//数组排序System.out.println("整型数组排序后的结果:");for(intn:intArray){ System.out.print(n+"\t");}String[]stringArray=

newString[]{"张力元","卢富成","陈肖","史鹏举","班海鹏"};Arrays.sort(stringArray);//数组排序System.out.println("字符串数组的排序结果:");for(Stringstr:stringArray){ System.out.print(str+"\t");}2.二维数组在实际应用中,经常会遇到一些用多维索引的数据。如:四个学生三门课的成绩。可以用下表表示:列:代表某门课程行:代表某个学生显然,该表的每一项需要有两个索引项。表现为数组的两个下标。超过一个下标的数组称为多维数组二维数组的声明和定义二维数组的声明

类型说明符[][]数组名;或类型说明符数组名[][];二维数组的定义

int[][]x=newint[2][3];int[][]

x;int

x[][];二维数组的声明和定义二维数组的初始化int[][]x=newint[][]{{1,2,3},{5,7,73},{0,74,76}};int[][]x={{1,2,3},{5,7,3},{0,4,6}};classTest{ publicstaticvoidmain(String[]args){

String[][]x=newString[2][3]; for(inti=0;i<x.length;i++){ for(intj=0;j<x[i].length;j++){

x[i][j]="第"+i+"行第"+j+"列"; } }//遍历输出 }}“x.length”表示二维数组的行数遍历每个一维数组二维数组的遍历对象数组存储一个班级中5名学员的信息〔姓名、性别、年龄和号码〕I.使用数组男男男男女50020400300200孙悟空唐僧猪八戒沙和尚白龙马1304567898213939393939135353535351383838413815152525252telnameagesex不能建立数组间的关系II.使用多维数组男男男男女50020400300200孙悟空唐僧猪八戒沙和尚白龙马1304567898213939393939135353535351383838413815152525252Java语言不允许一个数组包含多种数据类型III.使用对象数组Java语言中使用对象数组的存储方式namesexagetel对象数组对象数组声明和定义定义类:StudentpublicclassStudent{ publicStringname; publicStringsex; publicintage; publicStudent(Stringname,Stringsex,intage){ =name; this.sex=sex; this.age=age; }}对象数组对象数组声明和定义定义操作数组:Student数组classTest{ publicstaticvoidmain(String[]args){

Student[]stus=newStudent[4]; stus[0]=newStudent("孙悟空","男",500); stus[1]=newStudent("猪悟能","男",600); stus[2]=newStudent("沙悟净","男",700); stus[3]=newStudent("小白龙","男",800); }}定义数组并赋值,和其它数组赋值相同对象数组对象数组的遍历数组中的元素都是Student对象classTest{ publicstaticvoidmain(String[]args){

Student[]stus=newStudent[4]; stus[0]=newStudent("孙悟空","男",500); stus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论