java语言基础数组向量字符串课件

PPT
  • 阅读 37 次
  • 下载 0 次
  • 页数 103 页
  • 大小 763.535 KB
  • 2022-11-13 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
java语言基础数组向量字符串课件
可在后台配置第一页与第二页中间广告代码
java语言基础数组向量字符串课件
可在后台配置第二页与第三页中间广告代码
java语言基础数组向量字符串课件
可在后台配置第三页与第四页中间广告代码
java语言基础数组向量字符串课件
java语言基础数组向量字符串课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 103
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】java语言基础数组向量字符串课件.ppt,共(103)页,763.535 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-7168.html

以下为本文档部分文字说明:

NCEPU第二章Java语言基础2022年11月13日星期日NCEPUContents1.数组3.向量2.字符串NCEPU复合数据类型2022年11月13日星期日NCEPU复合数据类型早期的程序设计语言把变量看作是孤立的东西,例如我们往往用三个整数变量day,mon

th和year来表示日期intday,month,year;虽然这种方法容易理解,但是有两个明显的缺点:2022年11月13日星期日NCEPU复合数据类型程序若要处理多个日期,则需要更多的说明,例如要保存两个生日,则需要

:birthday1,birthmonth1,birthyear1birthday2,birthmonth2,birthyear2该程序因使用了多个变量而变得混乱,并且占用了过多的命名空间。每个变量都是独立的,而其实它们应当是某一个日期的组成部分,这样定义无法体现整体的联系。202

2年11月13日星期日NCEPU复合数据类型复合数据类型由程序员在源程序中定义,把描述整个对象各个不同方面的变量放到一个定义中,建立该模型。一旦有了定义,就可以使用该类型名来创建变量。Java是面向对象的程序设计语言,它为用户提供的复合数据类型即类

和接口。2022年11月13日星期日NCEPU复合数据类型引用类型(referencetype即复合类型)引用型变量的值与基本类型(简单类型)变量不同,变量值是指向内存空间的引用(地址)。所指向的内存

中保存着变量所表示的一个值或一组值。引用在其他语言中称为指针或内存地址。Java不支持显式使用内存地址,而必须通过变量名对某个内存空间地址进行访问。2022年11月13日星期日NCEPU两种类型变量的不同处理inta;a=12;MyDatetoday;today.day=14

;引用型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问.MyDatetoday;today=newMyDate();today.day=14;2022年11月13日星期日NCEPU关于对象

和对象的“引用”Strings=newString(“aString”);AnobjectofStringiscreatedTheobjectisinitializedw/”aString”Avariabl

eashandletoStringiscreatedThevalueofthehandlevariableisassigntotheobjectStrings;saStringNCEPU数组和字符串2022年11月13日星期日NCEPU第一节数组数组概述一维数

组二维数组2022年11月13日星期日NCEPU数组概述数组,是由数目固定的、相同类型的元素组成的有序集合,每个元素相当于一个变量。在Java中,数组是最简单的复合数据类型2022年11月13日星期日N

CEPU数组概述数组元素可以是任意类型,可以是简单类型,也可以是引用类型。访问数组中的某个元素,可以通过数组名加下标的形式,例如:a[4]。数组下标的个数就是数组的维数:有一个下标就是一维数组,

有两个下标就是二维数组,依次类推。2022年11月13日星期日NCEPU一维数组一个一维数组实际上是一列相同类型的变量一维数组的声明一维数组的创建一维数组初始化数组边界2022年11月13日星期日NCEPUanull一维数组的声明

声明一维数组的格式是:<类型><数组名>[];或<类型>[]<数组名>;例如:inta[]或:Dated[]例如:int[]a或:Date[]dinta[5]是不正确的要声明成:inta[]或:int[]a此时的数组a中的元素个数没有确定,系统没有创建具体的数组对象,而是声明了一个指向数组的引

用2022年11月13日星期日NCEPU所有的引用类型都需要用new来初始化一维数组的创建创建一维数组的格式为:<数组名>=new<类型>[<长度>];Java中没有静态定义的数组,数组的内存都是通过new动态分配

的。例如:a=newint[5];此时系统创建了具体的数组对象,为每个数组元素分配了具体的内存单元,并进行了默认的初始化0x03456789a0a[0]0a[1]0a[2]0a[3]0a[4]a[]=new

int[5];2022年11月13日星期日NCEPU一维数组的创建数组的声明和创建可以同时进行:<类型><数组名>[]=new<类型>[<长度>];或<类型>[]<数组名>=new<类型>[<长度>];例如:inta[]=newin

t[5];或:int[]a=newint[5];2022年11月13日星期日NCEPUpublicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for(inti=0;i<5;i++){s[i]

=2*i+1}}}一维数组2022年11月13日星期日NCEPU一维数组publicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for(inti=0;i<5;i++){s[i]

=2*i+1}}}2022年11月13日星期日NCEPU一维数组publicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for(inti=0;i<

5;i++){s[i]=2*i+1}}}2022年11月13日星期日NCEPU一维数组publicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for(inti=0;i<5;i++){s[i]=2*i

+1}}}2022年11月13日星期日NCEPU一维数组的创建一旦为数组分配了存储空间,程序中就不能改变数组的长度,但是可以再次使用new生成新的数组对象,分配新的存储空间。例如:inta[]=newint[5];a=newint[6];0x03456789a0a[0]0a[

1]0a[2]0a[3]0a[4]0x07654321a0a[0]0a[1]0a[2]0a[3]0a[4]0a[5]数组创建后就不能改变其大小,但是可以使用相同的引用变量指向一个全新的数组。本例中,第一个数组实际上丢失了,除非还有其他引用指向

它2022年11月13日星期日NCEPU注意:元素为引用类型的数组中的每一个元素都需要实例化。设已定义了Date类包括三个成员变量:year,month,day一维数组的创建当创建的数组元素是一个类的对象的时候,这些对象

必须要单独创建。Dated[];//Date是一个类d=newDate[5];//初始化,用new为数组分配空间d[1]=newDate();nulld0x01234567dnulld[0]nulld[1]nulld[2]nulld[3]nulld[4]0

x01234567dnulld[0]0x02345678d[1]nulld[2]nulld[3]nulld[4]0d[1].year0d[1].month0d[1].day2022年11月13日星期日NCEPU一维数组的初始化当创建一个数组对象时,每个数组元素都会

被自动初始化。inta[]=newint[5];0x01234567a0a[0]0a[1]0a[2]0a[3]0a[4]charc[]=newchar[5];Dated[]=newDate[5];0x03456789dnulld[0]nulld[1]null

d[2]nulld[3]nulld[4]引用为null,表示不指向任何存储单元0x02345678cnullc[0]nullc[1]nullc[2]nullc[3]nullc[4]字符'\u0000'(null)2022年11月13日星期日NCEPU一维数组的

初始化可以在声明数组的同时,为数组元素赋初值。inta[]={1,2,3,4,5};0x01234567a1a[0]2a[1]3a[2]4a[3]5a[4]静态初始化相当于:inta[]=newint[5];a[0]=1;a[1]=2;a[2]=3;a[3]=4;

a[4]=5;注意:静态初始化必须在声明数组时进行,而不能写成如下形式:inta[];a[]={1,2,3,4,5}或inta[]=newint[5];a={1,2,3,4,5}2022年11月13日星期日NCEPU一维数组的初始化可以在声明数组

的同时,为数组元素赋初值。Datedays[]={newDate(17,3,2019),newDate(17,3,2019),newDate(17,3,2019)};静态初始化2022年11月13日星期日NCEPU当用new创建了一个对象时,系统为对象中的变量进行了初始

化,即不但为变量分配了相应的存储单元,还设置了变量所属类型的相应初值,这样就避免发生变异错误。类型初值类型初值类型初值整型0booleanfalsefloat0.0f引用类型nullchar‘\u0000’double0.0复合数据类型(引用类型):声明时并未创建具体对象,而

是声明了一个指向复合数据类型的引用,引用类型都需要用new来初始化一维数组的初始化2022年11月13日星期日NCEPU一维数组的初始化publicclassTest{publicstaticvoidmain(Stringargs[]){i

nta[]=newint[5];Date[]days=newDate[3];System.out.println(a[3]);System.out.println(days[2]);}}classDate{intyear,month,day;Date(inty,intm,intd){

year=y;month=m;day=d;}}0null2022年11月13日星期日NCEPU一维数组2022年11月13日星期日NCEPU一维数组2022年11月13日星期日NCEPU一维数组2022年11月13日星期日NCEPU数组边界数组类

中有唯一的一个成员变量:length,用来表示数组的长度,即数组元素的个数。在Java中,数组的下标从0开始,到length-1结束,即数组a的第一个元素是a[0],最后一个元素是a[length-1]。另外,与C

、C++中不同,Java对数组元素要进行越界检查以保证安全性。2022年11月13日星期日NCEPU数组边界使用new创建数组对象时,自动给length赋值,数组一旦创建完毕,length就确定下来,除非重新使用new创建新的数组

对象。程序在运行过程中会对length进行检查,若发生越界访问,则会抛出一个异常。2022年11月13日星期日NCEPU数组边界例求一组数中的最大值和最小值。在本例中,使用一维数组来存放Math.random

()方法产生的一组0~99之间的随机数。Math.random()方法:publicstaticdoublerandom()Math类属于java.lang包,在程序中直接使用即可。该方法返回一个0.0~1.0之间的小数想得到一个0~99之间的数,可以使用:in

tnum=(int)(100*Math.random());2022年11月13日星期日NCEPUclassArrayMax{publicstaticvoidmain(Stringargs[]){finalintSIZE=10;int

num[]=newint[SIZE];inti,max,min;System.out.print("nums:");for(i=0;i<num.length;i++){num[i]=(int)(100*Math.random());System.out

.print(""+num[i]);}System.out.println();为每一个num数组元素赋一个0~99之间的随机值可能的输出为:nums:156819782285325975912022年1

1月13日星期日NCEPUclassArrayMax{publicstaticvoidmain(Stringargs[]){……max=num[0];min=num[0];for(i=1;i<num.length;i++){if(num[i]>max)m

ax=num[i];if(num[i]<min)min=num[i];}System.out.println("Maxis:"+max);System.out.println("Minis:"+min);}}输出为:M

axis:91Minis:15之前的输出为:nums:156819782285325975912022年11月13日星期日NCEPU二维数组Java中并没有真正的多维数组,而是通过建立数组的数组来得到多维数组,

即数组的元素还是数组。最常用的是二维数组,例如:intmat[][]=newint[2][3];2022年11月13日星期日NCEPU二维数组intmat[][]=newint[2][3];intmat[][];mat=newint[2][];mat[0]=newint[3];nullmat

mat[1]=newint[3];0x01234567matnullmat[0]nullmat[1]0x01234567mat0x02345678mat[0]nullmat[1]0mat[0][0]0mat[0][1]0m

at[0][2]0x01234567mat0x02345678mat[0]0x03456789mat[1]0mat[1][0]0mat[1][1]0mat[1][2]2022年11月13日星期日NCEPU二维数

组创建二维数组的一般格式为:typearrayN[][]=newtype[arrleng1][]arrayN[0]=newtype[arrleng2];arrayN[1]=newtype[arrleng2];……arrayN[arrayleng1-1]=newt

ype[arrleng2];第二维大小一致的二维数组叫作矩阵数组2022年11月13日星期日NCEPU二维数组也可以定义非矩阵数组。intmat[][]=newint[3][];mat[0]=newint[5];mat[1]=newint[3];mat[2]=

newint[2];0x01234567matnullmat[0]nullmat[1]nullmat[2]0x01234567mat0x02345678mat[0]nullmat[1]nullmat[2]0mat[0][0]0mat

[0][1]0mat[0][2]0mat[0][3]0mat[0][4]0x01234567mat0x02345678mat[0]0x03456789mat[1]nullmat[2]0mat[1][0]0mat[1][1]0mat[1][2]0x01234567mat0x023456

78mat[0]0x03456789mat[1]0x04567890mat[2]0mat[2][0]0mat[2][1]2022年11月13日星期日NCEPU二维数组可以在创建二维数组时进行初始化。intma

t1[][]={{1,2,3},{4,5,6}}intmat2[][]={{1,2},{3,4,5,6}}mat1:123456mat2:1234562022年11月13日星期日NCEPU二维数组书写二维数组是要注

意合法化:inta[][]=newint[2][3];intb[2][3];int[]c[]=newint[2][3];int[][]d=newint[2][];inte[][]=newint[][3];2022年11月13日星期日NCEPU第二节字符串

声明字符串变量字符串运算String类的常用方法2022年11月13日星期日NCEPU字符串概述字符串是内存中连续排列的一个或多个字符,在Java中,字符串是一个对象。在Java中提供了String和StringBuffer类型,它们都

是标准包java.lang中封装的类,分别用于处理不变字符串和可变字符串。2022年11月13日星期日NCEPU字符串概述String类-不变字符串类是指字符串一旦建立,其内容就不能改变,若要改变字符串的内容,则将生成新的实例StringBuffer类-可变字符串类是指

字符串中的内容是可以改变的2022年11月13日星期日NCEPU字符串概述Java的字符串用关键字String标记。这里的String不是一个简单类型,而是Java定义的一个类(class),属于引用类型。在此

,我们先将String当作一个数据类型使用。2022年11月13日星期日NCEPU1、声明字符串变量格式:String变量名;存储方式:字符串是引用类型,其存储方式与简单类型变量不同。Stringstr;Stringstr=“

abc”;770x012345670x01234567Helloxystintx=7;inty=7;Strings=“Hello”;Stringt=s;Strings=“Hello”;Stringt=“World”;

Stringr=s+t;0x12345670x12345680x1234569HelloWorldHelloWorldstr2022年11月13日星期日NCEPUString类-1.字符串的创建对于字符串变量,在使用之前要显式说明,并进行初始化:Strings1=newString(

"ThisisaString");或直接用字符串常量来初始化一个字符串:Strings2="ThisisaString";2022年11月13日星期日NCEPUString类-1.字符串的创建Strings1

="Hello";Strings2="Hello";s2="World";0x01234567s1Hello0x01234567s1Hello0x01234567s20x01234567s1Hello0x02

345678s2Worlds2="Hello";0x01234567s1Hello0x01234567s2Strings3=newString("Hello");0x01234567s1Hello0x0

1234567s20x03456789s3Hello2022年11月13日星期日NCEPUString类-1.字符串的创建Strings="Hello";Stringt=s;s="World";0x01234567sHello0x01234567

sHello0x01234567tHello0x01234567t0x02345678sWorldt="World";0x02345678t0x02345678sWorld2022年11月13日星期日NCEPU小结1)Strings1=“abc”;2)Strin

gs2=newString(“abc”);区别:第1种方法是定义了一个字符串常量,存放地点是常量池第2种方法是创建了一个字符串对象,是在执行期创建的2022年11月13日星期日NCEPU字符串运算程序中可以用赋值运算为字符串变量赋值。str=“

abc”+”xyz”除此之外,Java定义“+”可用于两个字符串的连接运算。如果字符串与其他类型变量进行“+”运算,系统自动将其他类型转换为字符串。2022年11月13日星期日NCEPU例1.用if语句,将三个整数按从小到大的顺序输出(三个整数已知,为34,21,27)。2022年11月13日

星期日NCEPUclassOrder{publicstaticvoidmain(Stringargs[]){inta=34,b=21,c=27,t;if(a>b){t=a;a=b;b=t;}if(b>c){t=b;

b=c;c=t;}if(a>b){t=a;a=b;b=t;}System.out.println("Theorderis"+a+","+b+","+c);}}Theorderis21,27,342022年11月13日星期日NCEPUclassOrder{publicstaticv

oidmain(Stringargs[]){inta=34,b=21,c=27,t;if(a>b){t=a;a=b;b=t;}if(b>c){t=b;b=c;c=t;}if(a>b){t=a;a=b;b=t;}Sys

tem.out.println(a+b+c);}}Theorderis822022年11月13日星期日NCEPUclassOrder{publicstaticvoidmain(Stringargs[]){inta=34,b=21,c=27,t;if(a>b){t=a;a=b;b=t;}

if(b>c){t=b;b=c;c=t;}if(a>b){t=a;a=b;b=t;}System.out.println("Theorderis"+a+b+c);}}Theorderis2127342022年11月13日星期日NCEPUString类-2.String类的常用方

法Java为String类定义了许多方法,可以通过下述格式调用Java定义的方法:<字符串变量>.<方法名>;2022年11月13日星期日NCEPUString类-2.String类的常用方法intlength()返回字符串的长度System.out.println(s1.len

gth());例如:Strings1="Hello";5charcharAt(intindex)返回字符串中index位置的字符System.out.println(s1.charAt(1));e2022年11月13日星期日NCEPUString类-2.String类的常用方法Stringto

LowerCase()将当前字符串中所有字符转换成小写形式System.out.println(s1.toLowerCase());例如:Strings1="Hello";helloStringtoUpperCase()将

当前字符串中所有字符转换成大写形式System.out.println(s1.toUpperCase());HELLO2022年11月13日星期日NCEPUString类-2.String类的常用方法Stringsubstring(intbeginIndex)

返回从beginIndex开始的子串System.out.println(s1.substring(2));例如:Strings1="Hello";lloStringsubstring(intbeginIndex,intendIndex

)返回从beginIndex开始到endIndex之前的子串System.out.println(s1.substring(2,4));ll2022年11月13日星期日NCEPUString类-2.String类的常用方法Stringreplace(charoldChar,charnewCha

r)将字符串中所有的oldChar转换为newCharSystem.out.println(s1.replace('l','t'));例如:Strings1="Hello";HettointindexOf(Stringstr)返回str在字符串

中第一次出现的位置System.out.println(s1.indexOf("ell"));12022年11月13日星期日NCEPUString类-2.String类的常用方法Stringconcat(Stringstr)将str连接在当前字符串的尾部System.out.printl

n(s1.concat("World!"));例如:Strings1="Hello";HelloWorld!2022年11月13日星期日NCEPUString类-2.String类的常用方法booleanequals(Stringstr)比较s

tr与当前字符的内容是否相同System.out.println(s1.equals("hello"));例如:Strings1="Hello";falsebooleanequalsIgnoreCase(Stringstr)比较str与当前字符的内容是否相同,并且忽略字符大小写System.o

ut.println(s1.equalsIgnoreCase("hello"));true2022年11月13日星期日NCEPU0若str和当前字符串仅长度不同,则返回两者长度的差值System.out.println(s1pareTo("

HelloWorld"));String类-2.String类的常用方法intcompareTo(Stringstr)比较str和当前字符串的内容,返回差值例如:Strings1="Hello";若str和当前字符串相等,则返回0System.out.println(s1pareTo(s1));

-6若str和当前字符串不相等,则返回第一个不同字符的差值System.out.println(s1pareTo("Hillo"));-42022年11月13日星期日NCEPUString类-3.==与e

quals()方法equals()是判断两个String对象内容是否相同==是判断两个String对象是否为同一实例,即在内存中的存储空间是否一致。2022年11月13日星期日NCEPUclassStringTest2{pu

blicstaticvoidmain(Stringargs[]){Strings1="Thisisthesecondstring.";Strings2="Thisisthesecondstring.";Strings3=newString("Thisisthesecon

dstring.");Strings4=newString(s1);Strings5=s1;0x01234567s1Thisisthesecondstring.0x01234567s1Thisisthesecondstri

ng.0x01234567s20x01234567s1Thisisthesecondstring.0x01234567s20x02345678s3Thisisthesecondstring.0x01234567s1Thisisthesecondstring.0x01234567s20x0

2345678s3Thisisthesecondstring.0x03456789s4Thisisthesecondstring.0x01234567s1Thisisthesecondstring.0x02345678s3Thisisthesecondstri

ng.0x03456789s4Thisisthesecondstring.0x01234567s50x01234567s2Booleanresult21=s1.equals(s2);result21=tr

ueBooleanresult22=s1==s2;result22=trueBooleanresult31=s1.equals(s3);result31=trueBooleanresult32=s1==s3;result32=

falseresult41=trueBooleanresult41=s1.equals(s4);result42=falseBooleanresult42=s1==s4;result51=trueBooleanresult5

1=s1.equals(s5);result52=trueBooleanresult52=s1==s5;2022年11月13日星期日NCEPUStringBuffer类StringBuffer类处理可变字符串,当修改一个StringBuffer类的字符串对象时

,不会再产生新的实例,而是直接操作原字符串。系统为StringBuffer类对象分配内存时,除去字符所占空间外,再另加16个字符大小的缓冲区。2022年11月13日星期日NCEPUStringBuffer类–创建StringBuffers

1=newStringBuffer();//创建一个大小为16个字符的空StringBuffer对象StringBuffers2=newStringBuffer(40);//创建一个大小为40个字符的空StringBuffer对象StringBuffer

s3=newStringBuffer("Hello");//创建一个大小为21个字符的StringBuffer对象2022年11月13日星期日NCEPUStringBuffer类-常用的方法intlength()返回StringBuffer对象中字符的长度System.

out.println(s1.length());例如:StringBuffers1=newStringBuffer("Hello")5intcapacity()返回StringBuffer对象缓冲区的容量System.out.p

rintln(s1.capacity());212022年11月13日星期日NCEPUStringBuffer类-常用的方法voidensureCapacity(intsize)设置StringBuffer对象的缓冲区容量s1.ensureCa

pacity(50);System.out.println(s1.capacity());例如:StringBuffers1=newStringBuffer("Hello")502022年11月13日星期日NCEPUString

Buffer类-常用的方法voidsetLength(intlen)设置StringBuffer对象字符长度s1.setLength(2);System.out.println(s1);例如:StringBuffers1=newStringBuffer("Hello

")He2022年11月13日星期日NCEPUStringBuffer类-常用的方法StringBufferappend(Objectobj)连接StringBuffer对象System.out.println(s1.appen

d("World"));System.out.println(s1);例如:StringBuffers1=newStringBuffer("Hello")HelloWorldHelloWorld2022年11月13日星期日NCEPU向量(Vector)是java.util类包提供的一个工具类。它

对应于类似数组的顺序存储的数据结构,但是具有比数组更强大的功能。它是允许不同类型元素共存的变长数组。每个Vector类的对象可以表达一个完整的数据序列。第三节向量2022年11月13日星期日NCEPUVecto

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

申请出来,而不能先创建数组再追加数组元素数量。为了解决这个问题Java中引入了向量类Vector。Vector也是一组对象的集合,但相对于数组,Vector可以追加对象元素数量,可以方便的修改和维护序列中的对象。Vector类2022年11月13日星期日NCEPU向量比较适合在如下情况

下使用:1.需要处理的对象数目不定,序列中的元素都是对象或可以表示为对象2.需要将不同类的对象组合成一个数据序列3.需要做频繁的对象序列中元素的插入和删除Vector类2022年11月13日星期日NCEPU向量比较适合在如

下情况下使用:4.经常需要定位序列中的对象和其他查找操作5.在不同的类之间传递大量的数据Vector类的方法相对于数组要多一些,但是使用这个类也有一定的局限性,例如其中的对象不能是简单数据类型等。Vector类2022年11月13日星期日NCEP

U(1)创建向量类的对象Vector类有三个构造方法:•Vector():构造一个空的向量。•Vector(intcapacity):以指定的存储容量构造一个空的向量。•Vector(intcapacity,intcapacityIncrement):以指

定的存储容量和容量增量构造一个空的Vector。Vector类VectorMyVector=newVector(100,50);在创建Vector序列时,不需要指明序列中元素的类型,可以在使用时确定。这样创建的MyVector向量序列初始有100个元素

的空间,以后一旦使用殆尽则以50为单位递增,使序列中元素的个数变化成150,200,…。2022年11月13日星期日NCEPU(2)向向量序列中添加元素:addElement(Objectobj)将新元素添加到序列尾部。add(Objectobj)将新元素添加到序列尾部。insertEle

mentAt(Objectobj,intindex)将新元素插入到指定位置。Vector类2022年11月13日星期日NCEPUVector类importjava.util.*;classTest{publicstaticvoidmain(String[]arg){Vec

torMyVector=newVector();for(inti=1;i<=10;i++)MyVector.addElement(newInteger(i));MyVector.insertElement

At("middle",5);for(inti=0;i<=10;i++)System.out.println(MyVector.elementAt(i));}}运行结果:12345middle6789102022年11月13日星期日NCEPU(

3)修改或删除向量序列中的元素1.setElementAt(Objectobj,intindex)将向量序列index位置处的对象元素设置成为obj,如果这个位置原来有元素,则被覆盖。2.removeElement(Objectobj)删除向

量序列中第一个与指定的obj对象相同的元素,同时将后面的元素前提,补上空位。这个方法返回的是布尔值。3.removeElementAt(intindex)删除index指定位置处的元素,同时将后面的元素前提。Vector类VectorMyVector=newVector(100);f

or(inti=0;i<10;i++){MyVector.addElement(“welcome”);MyVector.addElement(“to”);MyVector.addElement(“beijing”);}while(MyVector.remov

eElement(“to”));2022年11月13日星期日NCEPU4.removeAllElements()清除向量序列中的所有元素。Vector类2022年11月13日星期日NCEPU(4)查找向量序列中的元素1.Objec

telementAt(intindex)返回指定位置处的元素。一个要注意的问题:由于返回的是Object类型的对象,在使用之前通常需要进行强制类型转换,将返回的对象引用转换成Object类的某个具体子类的对象。例如:Stringstr=(Str

ing)MyVector.elementAt(0);2.booleancontains(Objectobj)检查向量序列中是否包含指定的对象元素obj。Vector类2022年11月13日星期日NCEPU3.intindexOf(Objectobj,intstart_index)从指定的st

art_index位置开始向后搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置。若指定的对象不存在,则返回-1。4.intlastIndexOf(Objectobj,intstart_index)从指定的start_index位置开始向前搜索,返

回所找到的第一个与指定对象obj相同的元素的下标位置。若指定的对象不存在,则返回-1。inti=0;While((i=MyVector.indexOf(“welcome”,i))!=-1){System.out.println(i);i+

+;}Vector类2022年11月13日星期日NCEPU(5)Vector中的其他方法capacity():返回Vector的容量clone():建立Vector的备份copyInto(Object[]):把Vector中的元素拷贝到一个

数组中firstElement():返回第一个元素lastElement():返回最后一个元素isEmpty():判断是否为空setSize(intsize):设置Vector的大小size():返回Vec

tor中元素的数量trimToSize():将Vector的容量下调至最小值Vector类2022年11月13日星期日NCEPU使用Vector时,一个需要特别注意的问题就是要先创建后使用。如果不先使用new运算符利用构造方法创建Vector类的对象,而直接使用Vector的方法,如:a

dd()等方法,则可能造成堆栈溢出或使用null指针等异常,妨碍程序的正常运行。Vector类2022年11月13日星期日NCEPU例题:用向量实现,创建3个学生对象(学号、姓名、年龄)和4个教师对象(教工号、姓

名、系别),并且输出。Vector类2022年11月13日星期日NCEPUVector类importjava.util.*;classStu{Stringxh;Stringxm;intnl;Stu(Stringxh1,Stringxm1,intnl1

){xh=xh1;xm=xm1;nl=nl1;}voiddisp(){System.out.println("学生:"+xh+""+xm+""+nl);}}2022年11月13日星期日NCEPUVector类

classTech{Stringzh;Stringxm;Stringxb;Tech(Stringzh1,Stringxm1,Stringxb1){zh=zh1;xm=xm1;xb=xb1;}voiddisp()

{System.out.println("教师:"+zh+""+xm+""+xb);}}2022年11月13日星期日NCEPUVector类publicclassStuTer{publicstaticvoi

dmain(String[]s){Vectorst=newVector();st.add(newStu("101","李明",18));st.add(newStu("102","王大力",20));st.add(n

ewStu("103","刘萍",19));st.add(newTech("10100","林小利","计算机"));st.add(newTech("10101","熊平","计算机"));st.add(ne

wTech("10102","戴红兵","电力"));st.add(newTech("10103","曲小军","电力"));2022年11月13日星期日NCEPU……for(inti=0;i<st.size();i++)

{if((st.elementAt(i))instanceofStu){((Stu)(st.elementAt(i))).disp();}else{((Tech)(st.elementAt(i))).disp();}}}Vector

类2022年11月13日星期日NCEPU2022年11月13日星期日NCEPU1.用数组实现,创建3个学生对象(学号、姓名、年龄)和4个教师对象(教工号、姓名、系别),并且输出。2.编程实现判断字符串1是否在字符

串2中出现,如果出现,则用字符串3替换。如:串1:563ty23tyio串2:ty串3:abc结果:563abc23abcio3.用二维数组实现,5个学生7门课程的总分和平均分的统计工作。(要求用两个类实现)作业2022年11月13日

星期日NCEPU课堂练习classerweishuzu{//分析运行结果publicstaticvoidmain(String[]arg){inta[][]=newint[3][];inti,j;a[0]=ne

wint[2];a[1]=newint[3];a[2]=newint[4];for(i=0;i<a.length;i++){for(j=0;j<a[i].length;j++){a[i][j]=i+j;Sys

tem.out.print(a[i][j]+””);}System.out.println();}}}2022年11月13日星期日NCEPU如何从键盘上读取数据importjava.util.*;classInputKeyBoar

d{publicvoidinputInt(){//用空格做分隔符如:123#回车Scanners=newScanner(System.in);//用逗号做分隔符,如:1,2,3,#,回车//Scanners=newScanner

(System.in).useDelimiter("\\s*,\\s*");while(s.hasNextInt()){inta=s.nextInt();System.out.println(a);}s.close();}}2022年11月13日星

期日NCEPU例:importjava.util.*;classStu{Stringxh;Stringxm;Stringnl;publicStu(Stringxh1,Stringxm1,Stringnl1){xh=xh1;xm=xm1;nl=nl1;//可用In

teger.parseInt(nl1)将nl1转化为int类型}voiddisp(){System.out.println("学生:"+xh+""+xm+""+nl);}}classTech{Stringzh;Stringx

m;Stringxb;publicTech(Stringzh1,Stringxm1,Stringxb1){zh=zh1;xm=xm1;xb=xb1;2022年11月13日星期日NCEPU运行结果:0,11,2,

3,2,3,4,5,011232345aa[0]a[1]a[2]2022年11月13日星期日NCEPUclassAnDian{publicstaticvoidmain(String[]arg){inta[][]={{2,4,3,8,9},{

1,3,5,4,17},{2,6,1,4,10}};intmax,min,i,j,k,m;求二维数组的鞍点(行中最大,列中最小)2022年11月13日星期日NCEPUfor(i=0;i<3;i++){max=a[i][0];m=0;for(j=1;j<5;j++)

//找行中的最大值if(a[i][j]>max){max=a[i][j];m=j;}…求二维数组的鞍点(行中最大,列中最小)2022年11月13日星期日NCEPUmin=a[i][m];for(k=0;k<3;k++)

//找列中的最小值if(a[k][m]<min)min=a[k][m];if(max==min)//判断最大和最小是否相等System.out.println("第"+(i+1)+"行有鞍点,是"+a[i][m]);elseSystem.out.print

ln(“第”+(i+1)+“行没有鞍点。”);}}}求二维数组的鞍点(行中最大,列中最小)2022年11月13日星期日NCEPU运行结果:第1行有鞍点,是9。第2行没有鞍点。第3行没有鞍点。2,4,3,8,91,3,5,4,172,6,1,4,10求二维数

组的鞍点(行中最大,列中最小)2022年11月13日星期日NCEPUclasszcf{publicstaticvoidmain(String[]arg){Stringstr1="12abc56rg";Strin

gstr2="sfabc16";inti,j,k;找两个字符串出现的相同子串2022年11月13日星期日NCEPUfor(i=1;i<=str1.length();i++)//子串的长度for(j=0;j<=str1.le

ngth();j++)for(k=0;k<=str2.length();k++)//判断str1中的子串是否在str2中出现if(str1.regionMatches(j,str2,k,i))System.out.pr

intln(str1.substring(j,j+i));//截取子串}}Str1:12abc56rgStr2:sfabc16找两个字符串出现的相同子串Str1:12abc56rgStr2:sfabc16找两个字符串出现的相同子串运行结果:1abc6abb

cabc

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?