Java数组课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章数组︳Java程序设计vcclab@qq.com数组本章学习提示本章的重点是介绍Java中数组类的使用,包括:数组的创建和使用数组类和字符串类的常用方法习惯Java完全面向对象的编程方式HefeiUniversityofTechnology,SchoolofComputerandInformationPage3/38Chapter4数组目录数组&数组创建1数组的排序32多维数组字符串4HefeiUniversityofTechnology,SchoolofComputerandInformationPage4/38Chapter4数组数组数组是程序设计使用最频繁的数据结构,它用来表示一组类型相同的有序数据。这些数据使用同一个标识符命名叫数组名,数组中的每个数据叫数组元素,可通过下标来访问。和变量一样,数组必须先定义,后使用。定义数组时确定数组的名称、数据类型,还要为它分配内存,初始化。在Java中,数组是对象。类Object中定义的方法都可以用于数组对象。基本类型,类类型,数组等。HefeiUniversityofTechnology,SchoolofComputerandInformationPage5/38Chapter4数组一维数组的初始化声明一个数组仅为数组指定了数组名和元素的数据类型,并未指定数组元素的个数,系统无法为数组分配存储空间。声明后的数组由初始化来完成上述工作,经过初始化的数组才能引用。数组初始化可以通过new操作符完成,也可以通过给元素赋初值完成。HefeiUniversityofTechnology,SchoolofComputerandInformationPage6/38Chapter4数组创建数组静态初始化和动态初始化静态初始化:在定义数组的同时对数组元素进行初始化静态初始化可用于任何元素类型,初值块中每个位置的每个元素对应一个引用(reference)intintArray[]={1,2,3,4};float[]heights={84.124,78.2,61.5};boolean[]tired={true,false,false,true};String[]names={“Zhang,“Li,“Wang};HefeiUniversityofTechnology,SchoolofComputerandInformationPage7/38Chapter4数组创建数组静态初始化和动态初始化动态初始化是使用运算符new为数组分配空间。数组说明的方括号中的数字表示数组元素个数:type[]arrayName=newtype[arraySize]typearrayName[]=newtype[arraySize]s=newchar[20];HefeiUniversityofTechnology,SchoolofComputerandInformationPage8/38Chapter4数组一维数组初始化示例第一种形式intscore[];score=newint[10];第二种形式intscore[]=newint[10];第三种形式intscore[]={65,34,78,81,56,92,56,87,90,77};Java数组的下标最小值为0,最大值为元素个数减一。S[9]S[8]S[7]S[6]S[5]S[4]S[3]S[2]S[1]S[0]65347881569256879077HefeiUniversityofTechnology,SchoolofComputerandInformationPage9/38Chapter4数组实战编写“复制一维数组的程序”定义两个一维数组a[3]和b[5]赋值a[i]=i;赋值b[j]=10*j;将a[i]逐位复制给b[i]HefeiUniversityofTechnology,SchoolofComputerandInformationPage10/38Chapter4数组一维数组的复制1.//1ArrayCopy2.//一维数组的复制3.packagechapter4;4.classexample04_01{5.publicstaticvoidmain(Stringargs[]){6.inta[],b[],i,j;7.a=newint[3];8.b=newint[5];9.System.out.println(a.length=+a.length);10.for(i=0;ia.length;i++){11.a[i]=i;12.System.out.print(a[i]+);13.}14.System.out.println();15.System.out.println(Beforearrayassigment);16.System.out.println(b.length=+b.length);17.for(j=0;jb.length;j++){18.b[j]=j*10;19.System.out.print(b[j]+);20.}21.System.out.println();22.b=a;23.System.out.println(Afterarrayassigment);System.out.println(b.length=+b.length);24.for(j=0;jb.length;j++)25.System.out.print(b[j]+);26.System.out.println();27.}28.}HefeiUniversityofTechnology,SchoolofComputerandInformationPage11/38Chapter4数组复合类型的数组复合类型的数组需要经过两步进行空间分配使用运算符new只是为数组本身分配空间,并没有对数组的元素进行初始化第一步先创建数组本身:typearrayName[]=newtype[arraySize];第二步分别创建各个数组元素:arrayName[0]=newtype(paramList);…arrayName[arraySize-1]=newtype(paramList);stringstringArrar[];stringArray=newString[3];stringArray[0]=newString(“how”);stringArray[1]=newString(“are”);HefeiUniversityofTechnology,SchoolofComputerandInformationPage12/38Chapter4数组目录数组&数组创建1数组的排序32多维数组字符串4HefeiUniversityofTechnology,SchoolofComputerandInformationPage13/38Chapter4数组多维数组Java中没有真正的多维数组,可以建立数组的数组(的数组……),由此得到多维数组。例如数组元素为一维数组时,称为二维数组,数组元素为二维数组时成为三维数组等等,依次类推。多维数组需要有多个下标来确定,拿二维数组为例,二维数组相当一个具有行列的表,只要给出表的行号和列号就可以确定表中的元素。二维数组的声明类型标识符数组名[][]或类型标识符[][]数组名HefeiUniversityofTechnology,SchoolofComputerandInformationPage14/38Chapter4数组二维数组的初始化声明的目的是指定数组名和元素的数据类型,初始化的目的是指定数组的行数与列数,为数组分配内存,给元素赋初值一般由赋值语句完成,也可以在初始化时通过初值表,同时完成赋初值的工作。1.先声明数组再初始化类型标识符数组名[][]数组名=new类型标识符[行数][列数]2.声明的同时进行初始化类型标识符数组名[][]=new类型标识符[行数][列数]或类型标识符[][]数组名=new类型标识符[行数][列数]3.赋初值初始化数组类型标识符数组名[][]={{初值表},{初值表},…{初值表}}HefeiUniversityofTechnology,SchoolofComputerandInformationPage15/38Chapter4数组二维数组的初始化二维数组行列数的检测也是通过属性length进行的,不同的是测列数时需要给定一个行标。具体办法为获得行数数组名.length获得列数数组名[行标].length二维数组初始化示例第一种方式inta[][];a=newint[3][4];第二种方式inta[][]=newint[3][4]第三种方式intgrade[][]={{65,34},{81,56,92},{56,87,90},{92,69,75}};数组的引用方法是在数组名后面的括号中指定其下标,通过下标值的变换,可取得相应数组元素的值。HefeiUniversityofTechnology,SchoolofComputerandInformationPage16/38Chapter4数组二维数组之例1.Strings[][]=newString[2][];2.s[0]=newString[2];3.s[1]=newString[3];4.s[0][0]=newString(“Good”);5.s[0][1]=newString(“Luck”);6.s[1][0]=newString(“to”);7.s[1][1]=newString(“you”);8.s[1][2]=newString(“!”);HefeiUniversityofTechnology,SchoolofComputerandInformationPage17/38Chapter4数组二维数组之例1.intmyTable[][]={2.{23,45,65,34,21,67,78},3.{46,14,18,46,98,63,88},4.{98,81,64,90,21,14,23},5.{54,43,55,76,22,43,33}};6.for(introw=0;row4;row++){7.for(intcol=0;col7;col++)8.System.out.print(myTable[row][col]+);9.System.out.println();10.}0123456023456534216778146141846986388298816490211423354435576224333HefeiUniversityofTechnology,SchoolofComputerandInformationPage18/38Chapter4数组非矩阵数组1.inttwoDim[][]=newint[4][];2.twoDim[0]=newint[2];3.twoDim[1]=newint[4];4.twoDim[2]=newint[6];5.twoDim[3]=newint[8];XXXXXXXXXXXXXXXXXXXXtwoDim数组为4行,每行的元素个数分别为2,4,6,8个HefeiUniversityofTechnology,SchoolofComputerandInformationPage19/38Chapter4数组二维数组的复制1.//ArrayCopy2.//二维数组的复制3.packagechapter4;4.publicclassexample04_02{5.publicstaticvoidmain(Stringargs[]){6.intc[][],d[][],i,j;7.c=newint[2][2];8.d=newint[3][3];9

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功