数组字符串向量.ppt
《数组字符串向量.ppt》由会员分享,可在线阅读,更多相关《数组字符串向量.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下一页上一页返回开始数组字符串向量 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望下一页上一页返回开始主要内容主要内容n5.1 数组n一维数组n二维数组n5.2 字符串n字符串常量nString类nStringBuffer类nStringTokenizer类n5.3 向量2继承性和多态性下一页上一页返回开始5.1 数组数组数组数组是有序数据的集合,是由数目固定、相同类型的元素组成的,用一个统一的数组名和下标来唯一地确定数组中的元素。Java将数组作为对象将数组作为
2、对象来处理,数组是一种引用类型,从java.lang.Object继承而来,故Object类中的所有方法均可用。3继承性和多态性下一页上一页返回开始5.1.1 一维数组一维数组具有一个下标的数组称为一维数组。1.一维数组的声明n其声明格式如下:n这里只有数组变量的定义,没有为数组元素分配空间,只为数组的引用分配了空间,array1和array2目前为空的引用。方式一:数据类型方式一:数据类型 数组名数组名;方式二:数据类型方式二:数据类型 数组名;数组名;例如:例如:int array1;int array1;double array2;double array2;4继承性和多态性下一页上一页
3、返回开始一维数组一维数组2.一维数组的初始化数组经过初始化后,其长度(即可存放的元素个数)就不可再改变。数组的初始化分为静态初始化和动态初始化两种:(1)静态初始化:在定义数组的同时对数组元素进行初始化 int intArray=1,2,3,4;/定义了一个含有4个元素的int型数注:在给数组赋初值时,不能同时指定数组的大小不能同时指定数组的大小,Java会根据初值的多少自动计算数组的大小。静态初始化必须使用上述一条语句完成 当创建数组后,如果没有初始化,系统会根据数组的不同数据类型,指定不同的缺省值。5继承性和多态性下一页上一页返回开始一维数组一维数组(2)动态初始化:用运算符new为数组分
4、配空间 对于简单类型的数组,其格式如下:n数据类型 数组名=new 数据类型arraySize;n数据类型 数组名=new 数据类型arraySize;或先声明数组,再对数组进行初始化:n数据类型 数组名;n数组名=new 数据类型arraySize;6继承性和多态性下一页上一页返回开始一维数组一维数组3.一维数组元素的的引用当数组初始化后就可通过数组名与下标来引用数组中的每一个元素。一维数组元素的引用格式如下:数组名数组名int类型的表达式注意:(1)与C/C+不同的是,Java对数组元素的下标要进行越界检查,以保证访问的安全性。若数组下标越界,Java会抛出 java.lang.Array
5、IndexOutOfBoundsException异常。(2)length是属于数组对象的数据域而不是方法。因此,使用length()会出错,应使用数组名.length,且只有在数组创建后才能访问。创建前,数组的引用是null。(3)与C、C+中不同,Java对数组元素要进行越界检查以保证安全性。8继承性和多态性下一页上一页返回开始一维数组一维数组4.数组的复制一个简单的赋值语句并不能完成数组复制工作,在Java中,可以使用赋值语句复制基本类型的变量却不能复制对象,如数组。将一个对象赋值给另一个对象,只会使两个对象指向相同的内存地址。赋值数组有以下三种方法:(1)用循环语句复制数组的每一个元素
6、,如for(int i=0;isourceArray.length;i+)targetArrayi=sourceArrayi;(2)使用Object的clone方法,如:int targetArray=(int)sourceArray.clone();(3)使用System类中的静态方法arraycopy,arraycopy的语法如下:arraycopy(sourceArray,srcpos,targetArray,tarpos,length);9继承性和多态性下一页上一页返回开始一维数组一维数组5.程序举例【例5.2】用数组求解Fibonacci数列的前20项,即使用数组下标表达式求解数学上
7、的迭代问题。publicclassFibonaccipublicstaticvoidmain(Stringargs)inti;intf=newint20;f0=1;f1=1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)System.out.println();System.out.print(fi+t);System.out.println();10继承性和多态性下一页上一页返回开始图图5.2 对对5个数据进行冒泡法排序个数据进行冒泡法排序【例5.3】用冒泡法和选择法两种方法对N个数排序(升序)。11继承性和多态性下一页上一页返回开始
8、5.1.2 二维数组二维数组如果数组的元素类型也是数组,这种结构就是多维数组。可以为二维、三维等。最常用的二维数组的每个元素都是一个一维数组,又叫做数组的数组。表示矩阵或表格需要使用二维数组。1.二维数组的声明数据类型数据类型 数组名数组名;或或数据类型数据类型 数组名;数组名;例如:例如:int arr;int arr;或或 int arr;int arr;12继承性和多态性下一页上一页返回开始二维数组二维数组2.二维数组的初始化二维数组的初始化也分为静态初始化和动态初始化两种。(1)静态初始化:在定义数组的同时为数组分配空间,例如:int intArray=1,2,2,3,3,4;(2)动
9、态初始化:对高维数组来说,动态分配内存空间有下面两种方法:直接为每一维分配空间,格式如下:数据类型 数组名=new数据类型数组长度;或数据类型 数组名=new 数据类型数组长度数组长度;例如:int intArray1=new int4;int intArray2=new int43;int arr=new int4;/错误13继承性和多态性下一页上一页返回开始二维数组二维数组 从最高维开始(而且必须从最高维开始),分别为每一维分配空间。第2维的每一个数组的长度可以不同,是一个不规则的二维数组。例如:String s =new String2;s0=new String2;s1=new Str
10、ing3;s00=new String(Good);s01=new String(Luck);s10=new String(to);s11=new String(you);s12=new String(!);14继承性和多态性下一页上一页返回开始二维数组二维数组3.二维数组的引用对二维数组中的每个元素,引用方式为:数组名index1index2二维数组也有length属性,可以求每一维数组的长度。对于:int x=new int34;15继承性和多态性下一页上一页返回开始二维数组二维数组【例5.5】测定数组的长度及数组赋值。public class twoDimensionArray publ
11、ic static void main(String arg)int matrix=1,2,3,4,5,2,3,4,5,3,4,5,4,5,5 System.out.println(the length of matrix is+matrix.length);for(int i=0;i5;i+)System.out.println(the length of matrix+i+is+matrixi.length);16继承性和多态性下一页上一页返回开始二维数组二维数组【例5.6】求二维数组中的最大数。class Maxvalue int maxvl(int arr1)int i,k,max;i
12、nt len=arr1.length,len1;max=arr100;for(i=0;i=len-1;i+)len1=arr1i.length;for(k=0;kmax)max=arr1ik;return max;【例5.7】矩阵的加法和乘法运算。public static int addMatrix(intm1,intm2)int result=new intm1.lengthm10.length;for(int i=0;im1.length;i+)for(int j=0;jm10.length;j+)resultij=m1ij+m2ij;return result;public stati
13、c int multiplyMatrix(intm1,intm2)int result=new intm10.lengthm2.length;for(int i=0;im1.length;i+)for(int j=0;jm20.length;j+)for(int k=0;km10.length;k+)resultij+=m1ik*m2kj;return result;17继承性和多态性下一页上一页返回开始5.2 字符串字符串字符串是多个字符的序列,是编程中常用的数据类型。在纯面向对象的Java语言中,将字符串数据类型封装为字符串类,无论是字符串常量还是字符串变量,都是用类的对象来实现的,在对象
14、中封装了一系列方法来进行字符串处理。18继承性和多态性下一页上一页返回开始5.2.1 字符串常量字符串常量字符常量是用单引号括住的一个字符。字符串常量使用双引号括住的一串字符,一个String对象,可以使用String类中的各种方法。注意:若Java程序中多处出现字符串常量如“ABC”,则Java编译程序只创建一个String对象,所有的字符串常量“ABC”将使用同一个String对象。如:String s1=ABC;String s2=ABC;String s3=new String(ABC);创建了三个对象,其中s1和s2是同一个对象,而s1和s3是2个不同的对象,19继承性和多态性下一页
15、上一页返回开始5.2.2 String类类1.String类的构造方法String类中提供了多种构造方法来创建String类的对象。(1)public String();创建一个字符串对象,其字符串值为空。(2)public String(String value);用字符串对象value创建一个新的字符串对象。(3)public String(char value);用字符数组value来创建字符串对象。(4)public String(char value,int offset,int count)从字符数组value中下标为offset的字符开始,创建有count个字符的字符串对象。(5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 字符串 向量
限制150内