书签 分享 收藏 举报 版权申诉 / 103
上传文档赚钱

类型java语言基础数组向量字符串课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3372413
  • 上传时间:2022-08-24
  • 格式:PPT
  • 页数:103
  • 大小:763.54KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《java语言基础数组向量字符串课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    java 语言 基础 数组 向量 字符串 课件
    资源描述:

    1、NCEPU第二章第二章Java 语言基础语言基础2022年年8月月8日星期一日星期一NCEPUContents1.数组数组 3.向量向量 2.字符串字符串NCEPU复合数据类型复合数据类型 2022年年8月月8日星期一日星期一NCEPU复合数据类型复合数据类型早期的程序设计语言把变量看作是孤立的东西,例如我们往早期的程序设计语言把变量看作是孤立的东西,例如我们往往用三个整数变量往用三个整数变量day,month和和year来表示日期来表示日期 int day,month,year;虽然这种方法容易理解,但是有两个明显的缺点:虽然这种方法容易理解,但是有两个明显的缺点:2022年年8月月8日星期

    2、一日星期一NCEPU复合数据类型复合数据类型v 程序若要处理多个日期,则需要更多的说明,例如要保存两程序若要处理多个日期,则需要更多的说明,例如要保存两个生日,则需要:个生日,则需要:birthday1,birthmonth1,birthyear1 birthday2,birthmonth2,birthyear2该程序因使用了多个变量而变得混乱,并且占用了过多的命该程序因使用了多个变量而变得混乱,并且占用了过多的命名空间。名空间。v 每个变量都是独立的,而其实它们应当是某一个日期的组成每个变量都是独立的,而其实它们应当是某一个日期的组成部分,这样定义无法体现整体的联系。部分,这样定义无法体现整

    3、体的联系。2022年年8月月8日星期一日星期一NCEPU复合数据类型复合数据类型v复合数据类型复合数据类型由程序员在源程序中定义,把描述整由程序员在源程序中定义,把描述整个对象各个不同方面的变量放到一个定义中,建立个对象各个不同方面的变量放到一个定义中,建立该模型。一旦有了定义,就可以使用该类型名来创该模型。一旦有了定义,就可以使用该类型名来创建变量。建变量。vJava是面向对象的程序设计语言,它为用户提供的是面向对象的程序设计语言,它为用户提供的复合数据类型即复合数据类型即类类 和和 接口接口。2022年年8月月8日星期一日星期一NCEPU复合数据类型复合数据类型v引用类型引用类型(refe

    4、rence type即复合类型即复合类型)n引用型变量的值与基本类型(简单类型引用型变量的值与基本类型(简单类型)变量不同,变量不同,变量值是指向内存空间的变量值是指向内存空间的引用引用(地址地址)。所指向的内)。所指向的内存中保存着变量所表示的一个值或一组值。存中保存着变量所表示的一个值或一组值。引用在其他语言中称为指针或内存地址。引用在其他语言中称为指针或内存地址。Java不支不支持显式使用内存地址,而必须通过变量名对某个内存持显式使用内存地址,而必须通过变量名对某个内存空间地址进行访问空间地址进行访问。2022年年8月月8日星期一日星期一NCEPU两种类型变量的不同处理两种类型变量的不同

    5、处理int a;a=12;MyDate today;today.day=14;引用型变量在声明后必须通过引用型变量在声明后必须通过开辟数据空间开辟数据空间,才才能对变量所指向的对象进行访问能对变量所指向的对象进行访问.MyDate today;today=new MyDate();today.day=14;2022年年8月月8日星期一日星期一NCEPU关于对象和对象的关于对象和对象的“引用引用”vString s=new String(“a String”);An object of String is created The object is initialized w/”a String

    6、”A variable as handle to String is created The value of the handle variable is assign to the objectString s;sa StringNCEPU 数组和字符串数组和字符串 2022年年8月月8日星期一日星期一NCEPU第一节第一节 数组数组 v 数组概述数组概述 v 一维数组一维数组 v 二维数组二维数组2022年年8月月8日星期一日星期一NCEPU数组概述数组概述 v数组,是由数组,是由数目固定的数目固定的、相同类型的相同类型的元素组成的元素组成的有有序集合序集合,每个元素相当于一个变量。,每

    7、个元素相当于一个变量。v在在Java中,数组是最简单的复合数据类型中,数组是最简单的复合数据类型2022年年8月月8日星期一日星期一NCEPU数组概述数组概述 v数组元素可以是任意类型,可以是简单类型,也可以是数组元素可以是任意类型,可以是简单类型,也可以是引用类型。引用类型。v访问数组中的某个元素,可以通过数组名加下标的形式,访问数组中的某个元素,可以通过数组名加下标的形式,例如:例如:a4。v数组数组下标的个数就是数组的维数下标的个数就是数组的维数:有一个下标就是一维有一个下标就是一维数组,有两个下标就是二维数组,依次类推。数组,有两个下标就是二维数组,依次类推。2022年年8月月8日星期

    8、一日星期一NCEPU一维数组一维数组 一个一维数组实际上是一列相同类型的变量一个一维数组实际上是一列相同类型的变量 v 一维数组的声明一维数组的声明v 一维数组的创建一维数组的创建v 一维数组初始化一维数组初始化v 数组边界数组边界2022年年8月月8日星期一日星期一NCEPUa null 一维数组的声明一维数组的声明声明一维数组的格式是:声明一维数组的格式是:;或或 ;例如:例如:int a 或:或:Date d 例如:例如:int a 或:或:Date dint a 5 是不正确的是不正确的要声明成:要声明成:int a 或:或:int a 此时的数组此时的数组a中的元素个数中的元素个数没

    9、有确定,系统没有创建具没有确定,系统没有创建具体的数组对象,而是声明了体的数组对象,而是声明了一个指向数组的引用一个指向数组的引用2022年年8月月8日星期一日星期一NCEPU 一维数组的创建一维数组的创建 创建一维数组的格式为:创建一维数组的格式为:=new ;Java中没有静态定义的数组,数组的内存都是通中没有静态定义的数组,数组的内存都是通过过new动态分配的。动态分配的。例如:例如:a=new int 5;此时系统创建了具体的数此时系统创建了具体的数组对象,为每个数组元素组对象,为每个数组元素分配了具体的内存单元,分配了具体的内存单元,并进行了默认的初始化并进行了默认的初始化0 x03

    10、456789a0a00a10a20a30a4a =new int 5;2022年年8月月8日星期一日星期一NCEPU一维数组的创建一维数组的创建数组的声明和创建可以同时进行:数组的声明和创建可以同时进行:=new ;或或 =new ;例如例如:int a =new int 5;或或:int a=new int 5;2022年年8月月8日星期一日星期一NCEPUpublic class Test public static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 一维数组一维数组2022年年8月月8日星

    11、期一日星期一NCEPU一维数组一维数组public class Test public static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 2022年年8月月8日星期一日星期一NCEPU一维数组一维数组public class Test public static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 2022年年8月月8日星期一日星期一NCEPU一维数组一维数组public class Test pub

    12、lic static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 2022年年8月月8日星期一日星期一NCEPU一维数组的创建一维数组的创建一旦为数组分配了存储空间,程序中就不能改变数一旦为数组分配了存储空间,程序中就不能改变数组的长度,但是可以再次使用组的长度,但是可以再次使用new生成新的数组对生成新的数组对象,分配新的存储空间。象,分配新的存储空间。例如:例如:int a =new int5;a=new int 6;0 x03456789a0a00a10a20a30a40 x07654321a0a0

    13、0a10a20a30a40a5数组创建后就不能改变其大小,但是可以使用相同的引用变量指数组创建后就不能改变其大小,但是可以使用相同的引用变量指向一个全新的数组。本例中,第一个数组实际上丢失了,除非还向一个全新的数组。本例中,第一个数组实际上丢失了,除非还有其他引用指向它有其他引用指向它2022年年8月月8日星期一日星期一NCEPU 注意:注意:元素为引用类型的数组中的每一个元素都需元素为引用类型的数组中的每一个元素都需要实例化。要实例化。设已定义了设已定义了Date类类包括三个成员变量:包括三个成员变量:year,month,day一维数组的创建一维数组的创建当创建的数组元素是一个类的对象的时

    14、候,这些对当创建的数组元素是一个类的对象的时候,这些对象必须要单独创建。象必须要单独创建。Date d ;/Date是一个类是一个类d=new Date 5;/初始化,用初始化,用new为数组分配空间为数组分配空间d 1=new Date();nulld 0 x01234567dnulld0nulld1nulld2nulld3nulld4 0 x01234567dnulld00 x02345678 d1nulld2nulld3nulld40d1.year0d1.month0d1.day2022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化当创建一个数组对象时,每个数组元

    15、素都会被自动当创建一个数组对象时,每个数组元素都会被自动初始化。初始化。int a =new int 5;0 x01234567a0a00a10a20a30a4char c =new char 5;Date d =new Date 5;0 x03456789dnulld0nulld1nulld2nulld3nulld4引用为引用为null,表示不指,表示不指向任何存储单元向任何存储单元0 x02345678cnullc0nullc1nullc2nullc3nullc4字符字符 u0000(null)2022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化 可以在声明数组的

    16、同时,为数组元素赋初值。可以在声明数组的同时,为数组元素赋初值。int a =1,2,3,4,5;0 x01234567a1a02a13a24a35a4静态初始化静态初始化相当于:相当于:int a =new int 5;a 0=1;a 1=2;a 2=3;a 3=4;a 4=5;注意:注意:静态初始化必须在声明数组时进行,而不能写静态初始化必须在声明数组时进行,而不能写成如下形式:成如下形式:int a ;a=1,2,3,4,5或或 int a =new int 5;a=1,2,3,4,52022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化 可以在声明数组的同时,为

    17、数组元素赋初值。可以在声明数组的同时,为数组元素赋初值。Date days=new Date(17,3,2019),new Date(17,3,2019),new Date(17,3,2019);静态初始化静态初始化2022年年8月月8日星期一日星期一NCEPU当用当用new创建了一个对象时,系统为对象中的变量进行了创建了一个对象时,系统为对象中的变量进行了初始化,即不但为变量分配了相应的存储单元,还设置了初始化,即不但为变量分配了相应的存储单元,还设置了变量所属类型的相应初值,这样就避免发生变异错误。变量所属类型的相应初值,这样就避免发生变异错误。类型类型初值初值类型类型初值初值类型类型 初

    18、值初值整型整型0booleanfalsefloat0.0f引用类型引用类型nullcharu0000double0.0复合数据类型(引用类型):复合数据类型(引用类型):声明时并未创建具体对象,声明时并未创建具体对象,而是声明了一个指向复合数据类型的引用,引用类型都而是声明了一个指向复合数据类型的引用,引用类型都需要用需要用new来初始化来初始化一维数组的初始化一维数组的初始化2022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化public class Test public static void main(String args)int a=new int5;Da

    19、te days=new Date3;System.out.println(a3);System.out.println(days2);class Date int year,month,day;Date(int y,int m,int d)year=y;month=m;day=d;0null2022年年8月月8日星期一日星期一NCEPU一维数组一维数组2022年年8月月8日星期一日星期一NCEPU一维数组一维数组2022年年8月月8日星期一日星期一NCEPU一维数组一维数组2022年年8月月8日星期一日星期一NCEPU数组边界数组边界v 数组类中有唯一的一个成员变量:数组类中有唯一的一个成员变

    20、量:length,用来表示数组,用来表示数组的长度,即数组元素的的长度,即数组元素的个数个数。v 在在Java中,数组的下标从中,数组的下标从0开始,到开始,到length-1结束,即数结束,即数组组a的的第一个元素是第一个元素是a0,最后一个元素是,最后一个元素是alength-1。v 另外,与另外,与C、C+中不同,中不同,Java对数组元素要进行越界检对数组元素要进行越界检查以保证安全性。查以保证安全性。2022年年8月月8日星期一日星期一NCEPU数组边界数组边界v使用使用new创建数组对象时,自动给创建数组对象时,自动给length赋值,数赋值,数组一旦创建完毕,组一旦创建完毕,le

    21、ngth就确定下来,除非重新使就确定下来,除非重新使用用new创建新的数组对象。创建新的数组对象。v程序在运行过程中会对程序在运行过程中会对length进行检查,若发生越进行检查,若发生越界访问,则会抛出一个异常。界访问,则会抛出一个异常。2022年年8月月8日星期一日星期一NCEPU数组边界数组边界v例例 求一组数中的最大值和最小值。求一组数中的最大值和最小值。在本例中,使用一维数组来存放在本例中,使用一维数组来存放Math.random()方法产生的一组方法产生的一组099之间的随机数。之间的随机数。Math.random()方法:方法:public static double rando

    22、m()Math类属于类属于java.lang包,在包,在程序中直接使用即可。程序中直接使用即可。该方法返回一个该方法返回一个0.01.0之间的小数之间的小数 想得到一个想得到一个099之间的数,可以使用:之间的数,可以使用:int num=(int)(100*Math.random();2022年年8月月8日星期一日星期一NCEPUclass ArrayMax public static void main(String args)final int SIZE=10;int num =new int SIZE;int i,max,min;System.out.print(nums:);for(

    23、i=0;i num.length;i+)num i=(int)(100*Math.random();System.out.print(+num i);System.out.println();为每一个为每一个num数组元素赋一个数组元素赋一个099之间之间的随机值的随机值 可能的输出为:可能的输出为:nums:15 68 19 78 22 85 32 59 75 91 2022年年8月月8日星期一日星期一NCEPUclass ArrayMax public static void main(String args)max=num 0;min =num 0;for(i=1;i max)max=n

    24、um i;if(num i b)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;System.out.println(The order is+a+,+b+,+c);The order is 21,27,342022年年8月月8日星期一日星期一NCEPUclass Order public static void main(String args)int a=34,b=21,c=27,t;if(ab)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;System.out.println(a+b+c);

    25、The order is 822022年年8月月8日星期一日星期一NCEPUclass Order public static void main(String args)int a=34,b=21,c=27,t;if(ab)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;System.out.println(The order is+a+b+c);The order is 2127342022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vJava为为String类定义了许多方法,可以通过下述格

    26、类定义了许多方法,可以通过下述格式调用式调用Java定义的方法:定义的方法:.;2022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vint length()返回返回字符串的长度字符串的长度 System.out.println(s1.length();例如:例如:String s1=Hello;5char charAt(int index)返回字符串中返回字符串中index位置的字符位置的字符System.out.println(s1.charAt(1);e2022年年8月月8日星期一日星期一NCEPUString类类-2String类的常

    27、用方法类的常用方法 vString toLowerCase()将当前字符串中所有字符转换成小写形式将当前字符串中所有字符转换成小写形式 System.out.println(s1.toLowerCase();例如:例如:String s1=Hello;hello String toUpperCase()将当前字符串中所有字符转换成大写形式将当前字符串中所有字符转换成大写形式 System.out.println(s1.toUpperCase();HELLO 2022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vString substring

    28、(int beginIndex)返回从返回从beginIndex开始的子串开始的子串 System.out.println(s1.substring(2);例如:例如:String s1=Hello;llo String substring(int beginIndex,int endIndex)返回从返回从beginIndex开始到开始到endIndex之前的子串之前的子串 System.out.println(s1.substring(2,4);ll 2022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vString replace(ch

    29、ar oldChar,char newChar)将字符串中所有的将字符串中所有的oldChar转换为转换为newChar System.out.println(s1.replace(l,t);例如:例如:String s1=Hello;Hetto int indexOf(String str)返回返回str在字符串中第一次出现的位置在字符串中第一次出现的位置 System.out.println(s1.indexOf(ell);1 2022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vString concat(String str)将将st

    30、r连接在当前字符串的尾部连接在当前字符串的尾部 System.out.println(s1.concat(World!);例如:例如:String s1=Hello;Hello World!2022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vboolean equals(String str)比较比较str与当前字符的内容是否相同与当前字符的内容是否相同 System.out.println(s1.equals(hello);例如:例如:String s1=Hello;false boolean equalsIgnoreCase(Strin

    31、g str)比较比较str与当前字符的内容是否相同,并且忽略字符大小写与当前字符的内容是否相同,并且忽略字符大小写 System.out.println(s1.equalsIgnoreCase(hello);true 2022年年8月月8日星期一日星期一NCEPU0 若若str和当前字符串仅长度不同,则返回两者长度的差值和当前字符串仅长度不同,则返回两者长度的差值 System.out.println(s1pareTo(Hello World);String类类-2String类的常用方法类的常用方法 vint compareTo(String str)比较比较str和当前字符串的内容,返回差

    32、值和当前字符串的内容,返回差值例如:例如:String s1=Hello;若若str和当前字符串相等,则返回和当前字符串相等,则返回0 System.out.println(s1pareTo(s1);6 若若str和当前字符串不相等,则返回第一个不同字符的差值和当前字符串不相等,则返回第一个不同字符的差值 System.out.println(s1pareTo(Hillo);4 2022年年8月月8日星期一日星期一NCEPUString类类-3=与与 equals()方法方法 vequals()是判断两个是判断两个String对象对象内容内容是否是否相同相同 v=是判断两个是判断两个Strin

    33、g对象是否为同一实例,即在内存对象是否为同一实例,即在内存中的中的存储空间存储空间是否是否一致一致。2022年年8月月8日星期一日星期一NCEPUclass StringTest2 public static void main(String args)String s1=This is the second string.;String s2=This is the second string.;String s3=new String(This is the second string.);String s4=new String(s1);String s5=s1;0 x01234567s

    34、1This is the second string.0 x01234567s1This is the second string.0 x01234567s2 0 x01234567s1This is the second string.0 x01234567s20 x02345678s3This is the second string.0 x01234567s1This is the second string.0 x01234567s20 x02345678s3This is the second string.0 x03456789s4This is the second string

    35、.0 x01234567s1This is the second string.0 x02345678s3This is the second string.0 x03456789s4This is the second string.0 x01234567s50 x01234567s2Boolean result21=s1.equals(s2);result21=true Boolean result22=s1=s2;result22=true Boolean result31=s1.equals(s3);result31=true Boolean result32=s1=s3;result

    36、32=false result41=true Boolean result41=s1.equals(s4);result42=false Boolean result42=s1=s4;result51=true Boolean result51=s1.equals(s5);result52=true Boolean result52=s1=s5;2022年年8月月8日星期一日星期一NCEPUStringBuffer类类vStringBuffer类处理可变字符串,当修改一个类处理可变字符串,当修改一个StringBuffer类的字符串对象时,不会再产生新的类的字符串对象时,不会再产生新的实例,而

    37、是直接操作原字符串。实例,而是直接操作原字符串。v系统为系统为StringBuffer类对象分配内存时,除去字符类对象分配内存时,除去字符所占空间外,再另加所占空间外,再另加16个字符大小的缓冲区。个字符大小的缓冲区。2022年年8月月8日星期一日星期一NCEPUStringBuffer类类 创建创建vStringBuffer s1=new StringBuffer();/创建一个大小为创建一个大小为16个字符的空个字符的空StringBuffer对象对象 vStringBuffer s2=new StringBuffer(40);/创建一个大小为创建一个大小为40个字符的空个字符的空Stri

    38、ngBuffer对象对象vStringBuffer s3=new StringBuffer(Hello);/创建一个大小为创建一个大小为21个字符的个字符的StringBuffer对象对象2022年年8月月8日星期一日星期一NCEPUStringBuffer类类-常用的方法常用的方法vint length()返回返回StringBuffer对象中字符的长度对象中字符的长度System.out.println(s1.length();例如:例如:StringBuffer s1=new StringBuffer(Hello)5int capacity()返回返回StringBuffer对象缓冲区的

    39、容量对象缓冲区的容量System.out.println(s1.capacity();212022年年8月月8日星期一日星期一NCEPUStringBuffer类类-常用的方法常用的方法vvoid ensureCapacity(int size)设置设置StringBuffer对象的缓冲区容量对象的缓冲区容量 s1.ensureCapacity(50);System.out.println(s1.capacity();例如:例如:StringBuffer s1=new StringBuffer(Hello)502022年年8月月8日星期一日星期一NCEPUStringBuffer类类-常用的方

    40、法常用的方法vvoid setLength(int len)设置设置StringBuffer对象字符长度对象字符长度 s1.setLength(2);System.out.println(s1);例如:例如:StringBuffer s1=new StringBuffer(Hello)He2022年年8月月8日星期一日星期一NCEPUStringBuffer类类-常用的方法常用的方法vStringBuffer append(Object obj)连接连接StringBuffer对象对象 System.out.println(s1.append(World);System.out.println

    41、(s1);例如:例如:StringBuffer s1=new StringBuffer(Hello)Hello World Hello World 2022年年8月月8日星期一日星期一NCEPU向量向量(Vector)是是java.util类包提供的一个工具类。它类包提供的一个工具类。它对应于类似数组的顺序存储的数据结构,但是具有比对应于类似数组的顺序存储的数据结构,但是具有比数组更强大的功能。数组更强大的功能。它是允许它是允许不同类型不同类型元素共存的元素共存的变变长长数组。每个数组。每个Vector类的对象可以表达一个完整的数类的对象可以表达一个完整的数据序列。据序列。第三节第三节 向量向

    42、量2022年年8月月8日星期一日星期一NCEPUVector类的对象不但可以保存顺序的一列数据,而且还类的对象不但可以保存顺序的一列数据,而且还提供了许多有用的方法来操作和处理这些数据。提供了许多有用的方法来操作和处理这些数据。Vector类对象所表达的序列中元素的个数是可变的,即类对象所表达的序列中元素的个数是可变的,即Vector实现了变长数组。实现了变长数组。Vector类类2022年年8月月8日星期一日星期一NCEPUJava中的数组只能保存固定数目的元素,且必须把所中的数组只能保存固定数目的元素,且必须把所有需要的内存单元一次性的申请出来,而不能先创建数有需要的内存单元一次性的申请出

    43、来,而不能先创建数组再追加数组元素数量。组再追加数组元素数量。为了解决这个问题为了解决这个问题Java中引入了向量类中引入了向量类Vector。Vector也是一组对象的集合,但相对于数组,也是一组对象的集合,但相对于数组,Vector可可以追加对象元素数量,可以方便的修改和维护序列中的以追加对象元素数量,可以方便的修改和维护序列中的对象对象。Vector类类2022年年8月月8日星期一日星期一NCEPU向量比较适合在如下情况下使用:向量比较适合在如下情况下使用:1.需要处理的对象数目不定,序列中的元素都是对象或需要处理的对象数目不定,序列中的元素都是对象或可以表示为对象可以表示为对象 2.需

    44、要将不同类的对象组合成一个数据序列需要将不同类的对象组合成一个数据序列 3.需要做频繁的对象序列中元素的插入和删除需要做频繁的对象序列中元素的插入和删除 Vector类类2022年年8月月8日星期一日星期一NCEPU向量比较适合在如下情况下使用:向量比较适合在如下情况下使用:4.经常需要定位序列中的对象和其他查找操作经常需要定位序列中的对象和其他查找操作 5.在不同的类之间传递大量的数据在不同的类之间传递大量的数据 Vector类的方法相对于数组要多一些,但是使用这类的方法相对于数组要多一些,但是使用这个类也有一定的局限性,个类也有一定的局限性,例如其中的对象不能是简单数据例如其中的对象不能是

    45、简单数据类型等。类型等。Vector类类2022年年8月月8日星期一日星期一NCEPU(1)创建向量类的对象创建向量类的对象 Vector类有三个构造方法:类有三个构造方法:Vector():构造一个空的向量。构造一个空的向量。Vector(int capacity):以指定的存储容量构造一个以指定的存储容量构造一个空的向量。空的向量。Vector(int capacity,int capacityIncrement):以指定的存储容量和容量增量构造一个空的以指定的存储容量和容量增量构造一个空的Vector。Vector类类Vector MyVector=new Vector(100,50);

    46、在创建在创建Vector序列时,不需序列时,不需要指明序列中元素的类型,可要指明序列中元素的类型,可以在使用时确定。以在使用时确定。这样创建的这样创建的MyVector向量序列初始有向量序列初始有100个元素的空间,以后一旦使用殆尽则个元素的空间,以后一旦使用殆尽则以以50为单位递增,使序列中元素的个数为单位递增,使序列中元素的个数变化成变化成150,200,。2022年年8月月8日星期一日星期一NCEPU(2)向向量序列中添加元素:向向量序列中添加元素:addElement(Object obj)将新元素添加到序列尾部。将新元素添加到序列尾部。add(Object obj)将新元素添加到序列

    47、尾部。将新元素添加到序列尾部。insertElementAt(Object obj,int index)将新元素插入到指定位置。将新元素插入到指定位置。Vector类类2022年年8月月8日星期一日星期一NCEPUVector类类import java.util.*;class Test public static void main(String arg)Vector MyVector=new Vector();for(int i=1;i=10;i+)MyVector.addElement(new Integer(i);MyVector.insertElementAt(middle,5);f

    48、or(int i=0;i=10;i+)System.out.println(MyVector.elementAt(i);运行结果:运行结果:12345middle6789102022年年8月月8日星期一日星期一NCEPU(3)修改或删除向量序列中的元素修改或删除向量序列中的元素 1.setElementAt(Object obj,int index)将向量序列将向量序列index位置处的对象元素设置成为位置处的对象元素设置成为obj,如果这个如果这个位置原来有元素位置原来有元素,则被覆盖则被覆盖。2.removeElement(Object obj)删除向量序列中第一个与指定的删除向量序列中第

    49、一个与指定的obj对象相同的元素,同时对象相同的元素,同时将后面的元素前提,补上空位。这个方法返回的是布尔值。将后面的元素前提,补上空位。这个方法返回的是布尔值。3.removeElementAt(int index)删除删除index指定位置处的元素,同时将后面的元素前提指定位置处的元素,同时将后面的元素前提。Vector类类Vector MyVector=new Vector(100);for(int i=0;i10;i+)MyVector.addElement(“welcome”);MyVector.addElement(“to”);MyVector.addElement(“beijin

    50、g”);while(MyVector.removeElement(“to”);2022年年8月月8日星期一日星期一NCEPU4.removeAllElements()清除向量序列中的所有元素。清除向量序列中的所有元素。Vector类类2022年年8月月8日星期一日星期一NCEPU(4)查找向量序列中的元素查找向量序列中的元素1.Object elementAt(int index)返回指定位置处的元素。返回指定位置处的元素。一个要注意的问题:由于返回的是一个要注意的问题:由于返回的是Object类型的对象,在使类型的对象,在使用之前通常需要进行强制类型转换,将返回的对象引用转换成用之前通常需要

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:java语言基础数组向量字符串课件.ppt
    链接地址:https://www.163wenku.com/p-3372413.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库