java数组和字符串.ppt
《java数组和字符串.ppt》由会员分享,可在线阅读,更多相关《java数组和字符串.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 数组和字符串数组和字符串数组数组数组说明数组说明一个数组是一系列的一个数组是一系列的匿名变量匿名变量,数组中的元素,数组中的元素可通过可通过下标下标来访问。来访问。在在Java中,数组是中,数组是对象对象。类类Object中定义的方法都可以用于数组。中定义的方法都可以用于数组。数组说明数组说明程序员可以说明任何类型的数组,数组元程序员可以说明任何类型的数组,数组元素可以是素可以是基本类型基本类型,也可以是,也可以是类类型类类型,当,当然还可以是然还可以是数组数组。例例char s ;Point points;s的每个元素都是的每个元素都是char类型的,类型的,points的的每个
2、元素都是类每个元素都是类Point类型的。类型的。等价的数组说明等价的数组说明char s;Point points;这两行说明与前面的说明完全等价。这两行说明与前面的说明完全等价。创建数组创建数组和所有对象一样,程序中使用和所有对象一样,程序中使用new关键字创建数关键字创建数组,方括号中的数字表示数组元素个数。组,方括号中的数字表示数组元素个数。例:例:s=new char20;points=new Point100;points0=new Point();points1=new Point();Java中没有静态的数组定义,数组的内存都是通中没有静态的数组定义,数组的内存都是通过过new
3、动态分配的。动态分配的。points(a)PointsLength:100(b)pointsLength:100X:Y:(c)Point类定义如下:类定义如下:class Point int x,y;Point(int x1,int y1)x=x1;y=y1;Point()this(0,0);图说明图说明说明语句说明语句:Point points;执行完毕,系统为变量执行完毕,系统为变量points分配一个引用空间。分配一个引用空间。说明语句说明语句:points=new Point 100;执行完毕,系统在内存中分配一个数组对象并把数组引执行完毕,系统在内存中分配一个数组对象并把数组引用赋给
4、变量用赋给变量points,说明语句说明语句:points1=new Point();执行完毕,数组的状态图执行完毕,数组的状态图4-1(b)变为图)变为图4-1(c)。)。数组说明与数组创建可以合并:数组说明与数组创建可以合并:char s =new char 20;Point points =new Point 100;数组变量的类型可以不同于所指向的数组类,但数组变量的类型可以不同于所指向的数组类,但应该是它的父类。应该是它的父类。例如:例如:Object points;points=new Point 100;例如:例如:Point points;points=new Object 1
5、00;正确正确错误错误数组边界数组边界在在Java中,数组中,数组下标从下标从0开始开始。数组中的元素个数数组中的元素个数length是数组类中唯一是数组类中唯一的数据成员变量。的数据成员变量。使用使用new创建数组时系统创建数组时系统自动给自动给length赋值赋值。数组一旦创建完毕,其大小就固定下来。数组一旦创建完毕,其大小就固定下来。程序运行时使用程序运行时使用length进行数组进行数组边界检查边界检查。如果发生越界访问,则抛出一个异常。如果发生越界访问,则抛出一个异常。示例示例int list =new int 10;for(int i=0;i list.length;i+)/进行相
6、应处理的代码进行相应处理的代码循环的结束条件中使用循环的结束条件中使用list.length,而不是常数,而不是常数10。好处好处:不会引起数组下标越界,使程序更健壮,:不会引起数组下标越界,使程序更健壮,修改更方便。修改更方便。数组初始化数组初始化数组名加上下标可以表示数组元素。数组名加上下标可以表示数组元素。数组的下标范围为数组的下标范围为0到到length-1。当创建一个数组时,每个元素都被初始化。当创建一个数组时,每个元素都被初始化。Java允许用初值来创建数组。允许用初值来创建数组。示例示例String names =Georgianna;Jen;Simon;Tom;静态初始化静态初
7、始化静态初始化静态初始化可用于任何元素类型,初值块可用于任何元素类型,初值块中每个位置的每个元素对应一个引用。中每个位置的每个元素对应一个引用。names=new String4;names0=Georgianna;names1=Jen;names2=Simon;names3=Tom;多维数组多维数组Java可以建立数组的数组(的数组可以建立数组的数组(的数组),由此得到),由此得到多维数组多维数组。一般来讲,一般来讲,n维数组是维数组是n-1维数组的数维数组的数组组。说明多维数组时使用说明多维数组时使用类型及多对方括类型及多对方括号号。多维数组可以从最高维起,分别为每一维多维数组可以从最高维
8、起,分别为每一维分配内存分配内存。示例示例int twoDim =new int 4;twoDim0=new int5;twoDim1=new int5;二维数组二维数组创建创建二维数组的一般格式二维数组的一般格式为:为:type arrayN =new type arrleng1 ;arrayN 0=new type arrleng2;arrayN 1=new type arrleng2;.arrayN arrleng1-1=new type arrleng2;非矩阵数组非矩阵数组在在Java中还可以创建中还可以创建非矩阵数组非矩阵数组。例例4-4int twoDim =new int 4
9、;twoDim0=new int2;twoDim1=new int4;twoDim2=new int6;twoDim3=new int8;twoDim数组为数组为4行,每行的元素个数分别行,每行的元素个数分别为为2,4,6,8个,各不相同。个,各不相同。数组形式数组形式如下:如下:X XX X X XX X X X X XX X X X X X X X 该数组各维的长度如下该数组各维的长度如下twoDim.length=4twoDim0.length=2twoDim1.length=4twoDim2.length=6twoDim3.length=8二维矩阵数组说明二维矩阵数组说明二维矩阵数组的
10、一般说明格式为二维矩阵数组的一般说明格式为type arrayName =new type length1length2;其中,其中,arrayName是数组名,是数组名,length1和和length2分别为数组各维的大小,分别为数组各维的大小,type是数组是数组元素的类型。元素的类型。例例4-5int matrix =new int 45;将创建一个有将创建一个有4个数个数组的数组,每个数组组的数组,每个数组中又有中又有5个整数,即个整数,即4行行5列的整数矩阵。列的整数矩阵。等价于等价于:int matrix =new int 4;for(int j=0;j matrix.length
11、;j+)matrix j =new int5;多维数组的初始化多维数组的初始化多维数组的初始化与一维数组类似,多维数组的初始化与一维数组类似,以二维数组静态初始化为例:以二维数组静态初始化为例:int a =2,3,1,5,3,4;它的形式如下:它的形式如下:2 31 53 4使用两个下标可以访问数组中的任一元素。使用两个下标可以访问数组中的任一元素。正确的说明示例正确的说明示例int a1 =new int 23;int a2 =new int 2 ;int a3 =new int 46;不正确的说明示例不正确的说明示例int errarr123;int errarr2 =new int 4
12、;int errarr3 4=new int 34;不允许静态不允许静态说明数组说明数组。数组的维数说数组的维数说明顺序应从高明顺序应从高维到低维。维到低维。数组数组维数的指定维数的指定只能出现在只能出现在new运运算符之后。算符之后。数组拷贝数组拷贝数组创建后就不能改变它的大小,但是可数组创建后就不能改变它的大小,但是可以使用相同的引用变量指向一个全新的数以使用相同的引用变量指向一个全新的数组。组。int elements =new int6;elements=new int10;Java在在System类中提供了一个特殊的方法类中提供了一个特殊的方法arraycopy(),它实现数组之间的
13、拷贝。,它实现数组之间的拷贝。示例示例class ArrayTestpublic static void main(String args)/初始数组初始数组int elements =1,2,3,4,5,6;/./增大后的新数组增大后的新数组int hold =10,9,8,7,6,5,4,3,2,1;/把把elements数组中的所有元素复制到数组中的所有元素复制到/hold数组中,下标从数组中,下标从0开始开始System.arraycopy(elements,0,hold,0,elements.length);数组数组hold的内容为:的内容为:1,2,3,4,5,6,4,3,2,1。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 数组 字符串
限制150内