第6章Java的可重用類_第1頁
第6章Java的可重用類_第2頁
第6章Java的可重用類_第3頁
第6章Java的可重用類_第4頁
第6章Java的可重用類_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

封面Java網絡編程基礎JAVA網絡編程基礎第1章

Java語言概述第2章Java的開發(fā)環(huán)境基本知識

第3章Java語言基礎

第4章Java面向對象程序設計第5章異常處理第6章Java的基本可重用類第7章

圖形用戶界面第8章多線程程序設計

第9章網絡基礎與URL編程

第10章Java小應用程序Applet第11章Java文件存檔第六章Java的基本可重用類

6.1Java主要的可重用包6.2Java語言包6.3Java.util包6.4輸入與輸出流的運用6.5綜合應用示例小結

習題

面向對象技術是迄今為止提高軟件可重用性的最有效的途徑之一,其中類和類的繼承機制為提高程序的可重用性提供了強有力的支持。6.1Java主要的可重用包

Java有一系列功能強大的可重用類,異常類也是Java可重用類。功能相關的可重用類組織成包??芍赜妙惖睦^承層次和包的組織呈樹型結構。Java可重用類按功能劃分為:

語言包java.lang(lang意為language)

輸入/輸出包java.io

實用程序包java.util(util意為utility)

小應用程序包java.applet

圖形用戶接口包java.awt、java.swing

網絡包

前三種包稱為基礎包,后三種包稱為應用包。圖6-1

給出了Jave資源的層次結構。其中,矩形框表示包,橢圓框表示包中的類,本章其余的圖均如此表示。JavaJava.langJJava.ioJava.utilJava.appletJava.swing…..…..…..…..…..圖6-1Java工具包層次圖Java.lang.MathJava.lang.SystemJava.io.FileJava常用包簡介:(1)java.lang包

主要含有與語言相關的類。java.lang包由解釋程序自動加載,不需顯式說明。(2)jave.io包

主要含有與輸入輸出相關的類,這些類提供了對不同的輸入輸出設備讀寫數(shù)據(jù)的支持,這些輸入和輸出設備包括鍵盤、顯示器、打印機、磁盤文件和網絡等。(3)java.util包

包括許多具有特定功能的類,有日期、向量、哈希表、鎖和堆棧等,其中Date類支持與時間有關的操作。(4)java.awt包和java.swing包

提供了創(chuàng)建圖形用戶界面元素的類。通過這些元素,編程者可以控制所寫Applet或用戶程序的外觀界面。該包中包含定義窗口、對話框、按鈕、復選框、列表、菜單、滾動條及文本域的類。(5)包

含有與網絡操作相關性的類,如URL、TCPsockets以及二進制向ASCII碼轉換的工具。(6)java.applet包

含有控制Hotjava瀏覽器的類,這些可以控制HTML文檔格式、應用程序中的聲音資源等,其中Applet類是用來創(chuàng)建包含于HTML頁內的applet必不少的類。(7)java.text包為國際化的應用程序提供類,包括:日期格式、數(shù)字、貨幣格式以及排序的順序等。(8)java.beans包JavaBeans定義了應用程序編程接口(API);JavaBeans是Java應用程序環(huán)境的中性平臺組件結構。6.2Java語言包(Java.lang)

Java語言包簡介6.2.1字符串類6.2.2Math類

java.lang包含了Object類,java.lang.Object類是Java中整個類層次結構的根節(jié)點,這個軟件包還定義了基本數(shù)據(jù)類型的類:String、Boolean、Character、Byte、Integer、Short、Long、Float、Double。這些類支持數(shù)字型的轉換和字符串操作。Java語言包(Java.lang)簡介Java語言的核心部分是java.lang,它定義了Java中的大多數(shù)基本的類。java.lang包由解釋程序自動加載,不需顯式說明(即不需用import引入)。下面是java.lang中的其他類:

Class——為運行時搜集信息,如對instanceof操作符提供支持。

Math——提供像pi和e這樣的數(shù)學常數(shù)及各種函數(shù)。

System——提供對操作系統(tǒng)的訪問,包括默認的I/O流環(huán)境變量、自動垃圾收集、系統(tǒng)時間和系統(tǒng)屬性;許多System方法可訪問Runtime類的方法。

Runtime——提供對操作系統(tǒng)的訪問:使用java.lang.System可以更容易地訪問大多數(shù)Runtime方法;唯一的例外是exec方法,它開始一個新進程。

Thread——和java.lang.Runnable接口協(xié)同作用提供Java中的多線程的支持。

Throwable——它是Java中所有異常(Exception)的基類,是java.lang.Exception、java.lang.Error和java.lang.RuntimeException的父類。應用程序運行時發(fā)生意外時,異常和錯誤類就發(fā)出信號。它在第5章作了介紹。Java語言包(Java.lang)簡介6.2.1

字符串類

1.

String類

2.

StringBuffer類

java.lang提供了兩種字符串類:

String類StringBuffer類另外兩種構造方法:publicString(char

value[]);利用一個字符數(shù)組構造一個字符串public

String(char

value[],int

offset,int

count);

利用字符數(shù)組的offset下標開始的count個字符賦構造一個字符串1.String類String類提供的幾種常用的字符串創(chuàng)建方法:

String類可創(chuàng)建一個對象,用于代表一個字符串(不變的字符串),并定義了多種方法以實現(xiàn)對字符串的各種操作。例:Strings=”Hello!”;使用字符串常量創(chuàng)建String實例sStringss=

new

String(s);利用字符串s構造String對象ss(可以使用直接賦值方法,更簡單:

Stringss=s;)1.String類publicclass

string{

publicstaticvoid

main(Stringargs[]){Strings="Hello";Strings1=

new

String(s);Strings2=

new

String("World!");Strings3=s1+s2;System.out.println(s3);

char

str[]={'a','b','c','d','e'};System.out.println(str);Strings4=new

String(str);System.out.println(s4);s4=new

String(str,2,2);System.out.println(s4);System.out.println(new

String(str,1,3));}}運行結果:HelloWorld!abcdeabcdecdbcd例.創(chuàng)建字符串publicintlength()返回字符串的長度publiccharcharAt(intindex)返回字符串位置index處的字符

publicbooleanequals(Strings)

與字符串s比較相等否,相等返回true;反之,返回false

publicintcompareTo(Strings)

與字符串s比較字典順序,相等返回0;

當前串大于s返回1;當前串小于s返回-11.String類

String類提供了豐富的字符串操作方法,主要有:例:Strings="Hello!";

System.out.println(s.length());

//將輸出7

System.out.println(s.charAt(1));

//將輸出e

System.out.println(s.equals("Hello!"));

//將輸出falseSystem.out.println(pareTo(“Hello!"));

//將輸出-1publicbooleanregionMatches(inttoffset,StringOther,intoffset,intlen)

從當前串中位置toffset起尋找串Other中起始位置為offset、長度為len的子串.如發(fā)現(xiàn)匹配,返回true;否則,返回falsepublicbooleanstartsWith(Stringprefix)

如當前串以串prefix開始則返回true;否則返回falsepublicbooleanendsWith(Stringsuffix)

如當前串以串suffix結尾則返回true;否則返回false1.String類例:Strings="HelloWorld!";

System.out.println(s.startsWith(“He”));

//將輸出true

System.out.println(s.startsWith(“ello”));

//將輸出false

System.out.println(s.endsWith(“World!”));

//將輸出true

System.out.println(s.endsWith(“World”));

//將輸出falsepublicintindexOf(Stringstr)

在當前字符串中尋找與str匹配的子串,返回首次匹配的起始下標值,無匹配返回-1。publicStringsubstring(intbeginIndex,intendIndex)

在當前字符串中,求從起始位置beginIndex到結束位置

endIndex的子串publicStringconcat(Stringstr)

將當前字符串與str連接,返回連接后的字符串

(注:使用“+”運算符更方便)publicStringtoLowertCase()

返回當前字符串全轉換為小寫后的字符串publicStringtoUpperCase()

返回當前字符串全轉換為大寫后的字符串1.String類publicChartoCharArray()返回當前字符串轉換成的字符數(shù)組publicstaticStringvalueOf(typevariable)

返回由variable轉換成的字符串.注意:這是個靜態(tài)方法1.String類注意:String類的所有方法都不會改變String類對象本身的值!例如有如下語句:

s1="abc";s2=s1.trim();則執(zhí)行后,s1、s2中存放的字符串分別為

“abc”和“abc”

String類實現(xiàn)一種不能改變的靜態(tài)字符串,StringBuffer類實現(xiàn)一種動態(tài)可變的字符串。StringBuffer類可以用于創(chuàng)建String類,StringBuffer一旦建好,用toString()方法將其轉換為String類。以后,就可以使用String類方法來操作。

2.StringBuffer類StringBuffer類提供三種創(chuàng)建方法:

publicStringBuffer();創(chuàng)建一個空的StringBuffer類

publicStringBuffer(intlength);

創(chuàng)建一個大小為length的StringBuffer類

publicStringBuffer(Stringstr);

按str創(chuàng)建一個動態(tài)可變的StringBuffer類

StringBuffer類提供的方法主要用于把輸入數(shù)據(jù)轉換為String類。輸入數(shù)據(jù)可來自鍵盤或其它數(shù)據(jù)源。類型可以是字符、字符數(shù)組、整數(shù)、浮點數(shù)、和Object類型等。2.StringBuffer類StringBuffer的主要方法:publicintlength()

返回緩沖區(qū)的字符數(shù)。publicintcapacity()返回緩沖區(qū)剩余空間。publicsynchronizedStringBufferappend(typevariable)

把variable轉換為字符串,然后與當前串相連publicsynchronizedStringBuffer

append(Char(charch))

把字符ch連接到當前串尾publicsynchronizedStringBufferinsert(intoffset,typevariable)

把variable轉換為字符串,然后插入到當前串由offset指定的位置

例6.1利用StringBuffer類將鍵盤輸入的數(shù)據(jù)建立一個字符串。importjava.io.*;publicclassStringBufferToString{publicstaticvoid

main(Stringargs[]){charch;try2.StringBuffer類publicsynchronizedStringBufferinsert(intoffset,charch)

把字符ch插入到當前串由offset指定的位置

publicsynchronizedStringtoString()

把StringBuffer轉換為字符串String

{intlength=20;

//置StringBuffer的大小為20

StringBufferstrb=newStringBuffer(length);

while((ch=System.in.read())!=’\n’){strb.append(ch)}

Stringstr=strb.toString();System.out.println(str);}catch(IOExceptione){}}}2.StringBuffer類1.三角函數(shù)

2.乘方

3.舍入4.其他

java.lang.Math類是標準的數(shù)學類,封裝了一些數(shù)學函數(shù)和常量。在這個類中,數(shù)的大小范圍跟具體的操作平臺有關。與System類相似,java.lang.Math類也不能被子類化或實例化,因為它的所有方法和變量也都是靜態(tài)的。

6.2.2Math類

下面的三個方法接受一個double類型的且以弧度為單位的角度值,并返回相應的運算結果,返回類型均為double型。(1)sin(double

a)返回弧度a的sin值

(2)cos(double

a)返回弧度a的cos值

(3)tan(double

a)返回弧度a的tan值1.三角函數(shù)下面的三個方法是反三角函數(shù),返回類型均為double型。

(1)asin(double

r)返回sin值為r的弧度

(2)acos(double

r)返回cos值為r的弧度

(3)atan(double

r)返回tan值為r的弧度

例:Math.sin(3.1416/6)將返回0.5000010603626028

例:Math.cos(3.1416/4)將返回0.7071054825112363

例:Math.asin(0.5)將返回0.5235987755982989(即π/6)(1)pow(doublex,double

y)返回xy次方。(2)exp(double

x)返回ex(3)log(double

x)返回x的自然對數(shù)。(4)sqrt(double

x)返回x的平方根。

(返回類型均為double型)2.乘方(1)ceil(doublea)返回大于或等于a的最小整數(shù)值。(2)floor(doublea)返回小于或等于a的最大整數(shù)值。(3)rint(doublea)返回四舍五入后的整數(shù)值。

(上面三個方法的返回類型均為double型)(4)round(floata)

返回四舍五入后的整數(shù)值,返回類型為int型。(5)round(doublea)

返回四舍五入后的整數(shù)值,返回類型為long型。3.舍入(1)abs(a)返回a的絕對值

a可以是

int、long、float、double型,返回類型與a的類型相同。(2)max(a,b)返回a和b的最大值(3)min(a,b)返回a和b的最小值

(2)、(3)中的a、b類型相同,可以是

int、long、float、double型,返回類型與a、b的類型相同。(4)random()返回一個double型的隨機實數(shù),范圍是[0.0,1.0)4.其它6.3.1Java.util包的構成6.3.2日期時間類6.3.3向量類及其使用6.3.4哈希表類及其應用

java.util包提供了許多實用的類,如:日期、向量、哈希表、鎖和堆棧等。6.3java.util包

java.util包由一些實用類組成的,有些類還是Java語言所不可缺少的。java.util包的大致層次結構如下頁圖6-4所示。6.3.1java.util包的構成java.util.*圖6-4java.util

包層次結構說明:

Dictionary是抽象類,Enumeration和Observer是接口,其余屬于普通類;

Hashtable除繼承Dictionary類外,還是java.lang類庫中Cloneable的一個實現(xiàn);

BitSet和Vector除繼承了類Object外,同時也是java.lang.Cloneable的實現(xiàn);BitSet是最終類,不能用以創(chuàng)建子類。日期時間類的實例可通過如下幾種方法予以創(chuàng)建:

1)publicDate()

這個構造方法將把當前日期和時間保存于所創(chuàng)建的Date實例。

2)publicDate(intyear,intmonth,intdate)

這個構造方法將根據(jù)所給定的year、month、date參數(shù)創(chuàng)建一個Date實例。也就是說,利用此構造方法,所創(chuàng)建的Date實例表示的日期與年、月、日參數(shù)表示的日期等同。6.3.2日期時間類(Date)

日期時間類是一個相對簡單、但使用頻繁的類,它提供了獨立于具體系統(tǒng)的日期/時間的表示形式。3)publicDate(intyear,intmonth,intdate,inthours,intminutes)

這個構造方法類似于第(2)個方法,只不過這里還提供了具體的小時(hours)和分鐘(minutes)參數(shù),因而時間要更為精確。4)publicDate(intyear,intmonth,intdate,inthours,intminutes,intseconds)

這個構造方法類似于第(3)個方法,所不同的是這里還提供了具體的(seconds)參數(shù),時間又精確了一些。

一旦創(chuàng)建了日期時間類的一個實例,就可以用它的方法來檢索有關日期和時間的信息。

下面是日期時間類的一些方法:

publicintgetYear();

返回當前日期中的年份

publicintgetMonth();

返回當前日期中的月份

publicintgetDate();

返回當前日期中的日(0-31)

publicintgetDay();

確認某天是星期幾

publicintgetHours();返回當前日期中的小時數(shù)

publicintgetMinutes();返回當前日期中的分鐘數(shù)

publicintgetSeconds();返回當前日期中的秒數(shù)

publicbooleanbefore(Datewhen);對日期實例所代表的時間和when進行比較.若比when早,返回true;否則返回false

publicbooleanafter(Datewhen);對日期實例所代表的時間和when進行比較。若比when晚,返回true;否則返回false

publicbooleanequal(Objectobj);

比較兩個日期對象,若相等則返回true;否則返回falsepublicStringtoString();返回當前日期參數(shù)的字符串表示形式。注意:不同主機系統(tǒng)的日期表示形式不盡相同

日期時間類的使用非常簡單,只需要創(chuàng)建一個類實例不帶任何參數(shù),即可以生成一代表當前日期的類。如下所示:

Datetoday=

new

Date();

System.out.println(today.toString());

或者也可用一更為簡單的方式:

System.out.println(today);

后一種方式中,println將自動調用toString方法,因而無需顯式調用。6.3.3向量類(Vector)及其使用

1.向量和數(shù)組的異同2.向量類的構造方法、屬性和方法3.建立向量實例4.向量的使用5.對象查找

向量(Vector)和數(shù)組存在許多相似之處,它們都是類,均可用以保存列表。數(shù)組只能保存固定大小的列表,列表中元素的類型必須一致,必須一次申請所有的存儲單元。如果事先無法確定列表內究竟要存放多少對象,Java的數(shù)組就無能為力了。向量卻提供了一種與“動態(tài)數(shù)組”相近的概念,它可以動態(tài)地增加它的列表長度,列表中元素的類型還可以不一致,但必須都是對象。另外,向量提供了比數(shù)組更多的方法。

盡管向量與數(shù)組相比有許多重要的優(yōu)點,但它也有一些不足之處,其中之一是它不能直接存儲簡單數(shù)據(jù)類型。1.向量和數(shù)組的異同下列場合較適合于使用向量:

1)如果需要頻繁進行對象的插入和刪除工作,或者需要處理的對象數(shù)目不定;

2)列表成員全部都是對象(類型可不一致),或者可以用對象方便地表示;

3)需要很快確定列表內是否存在某一特定對象,并且希望很快了解到對象的存放位置。下列場合較適合于使用數(shù)組:

1)所需處理的對象類型一致,數(shù)目固定或大致可以確定,盡管具體對象經常發(fā)生變化;

2)所需處理的是簡單數(shù)據(jù)類型。

由于向量只能存儲對象,故如果需要把簡單數(shù)據(jù)類型保存到向量,必須使用Java的數(shù)據(jù)類型類,因此,有些場合下使用數(shù)組要比使用向量方便一些。1.向量和數(shù)組的異同向量類共有3種形式的構造方法,如下所示:

Vector(int

capacity,intcapacityIncrement);

用指定的向量容量及其增量參數(shù),創(chuàng)建一個空向量

Vector(int

capacity);

用給定的向量容量參數(shù),創(chuàng)建一空向量

Vector();創(chuàng)建一空向量2.向量類的構造方法、屬性和方法

要使用向量,首先必須創(chuàng)建一個Vector類實例,這通過向量的構造方法創(chuàng)建。

為優(yōu)化存儲管理,Java的每個向量均可以使用一個“向量容量”參數(shù)和一個“容量增量”參數(shù)。向量容量——向量中可存放的元素個數(shù)

容量增量——規(guī)定了每當向量元素個數(shù)達到極限時,需一次性擴充的向量容量大小向量容量、容量增量

“容量增量”參數(shù)說明,當向向量增加元素時,如果向量內元素個數(shù)已經達到了向量的極限大小,向量就要申請擴充容量,但它不是申請一個元素的空間,而是多個元素的空間,數(shù)目由容量增量參數(shù)確定。如果容量增量參數(shù)為0,則每次向量容量都將增加一倍大小。設置這兩個參數(shù)可提高向量類的使用效率??梢院雎赃@兩個參數(shù),這時Java將自動為維護向量的使用,包括必要時向量的增容等。向量類提供了如下3個屬性變量:

protectedintcapacityIncrement;

當向量大小不足時,所用的增量大小

protectedintelementCount;

向量的元素個數(shù)

protectedObjectelementData[];

向量成員數(shù)據(jù)所用的緩沖publicfinalsynchronizedvoidcopyInto(ObjectanArray[]);

把向量元素拷貝到指定數(shù)組publicfinalsynchronizedvoidtrimToSize();

把向量容量調整到正好等于向量元素個數(shù)以壓縮向量的存儲空間。這樣,隨后的插入操作將導致重新申請內存空間publicfinalsynchronizedvoidsetSize(intnewSize);

設置向量大小。如果向量被縮小,多余的元素將被截斷;如果被放大,新增的向量元素將置為nullpublicfinalintcapacity()

返回向量容量publicfinalintsize()

返回向量的元素個數(shù),注意和capacity()之間的區(qū)別

一旦創(chuàng)建了一個向量類的實例,就可以用它的方法來執(zhí)行插入、刪除及查找對象等操作。向量類提供了極為豐富的方法,下面是其中一些主要的方法:publicfinalBooleanisEmpty()

若向量不包括任何元素,返回true;否則返回falsepublicfinalsynchronizedEnumerationelements()

返回向量元素所對應的枚舉值,以便隨后用

Enumeration()方法獲取該向量元素publicfinalbooleancontains(Objectelem)

若向量中包括了對象elem,返回true;否則返回falsepublicfinalintindexOf(Objectelem)

返回向量下標;若對象不存在,返回-1publicfinalsynchronizedintindexOf(Objectelem,intindex)

從指定位置(index)開始搜索向量,返回對象所對應的向量下標值。若未找到對象,返回-1publicfinalintlastIndexOf(Objectelem)

從向量末尾向前搜索向量,返回對象的下標值publicfinalsynchronizedintlastIndexOf(Objectelem,intindex)

從指定位置開始向前搜索向量,返回給定對象的下標值publicfinalsynchronizedObjectelementAt(intindex)

返回指定下標處的對象。若下標值非法,拋出一

ArrayIndexOutOfBoundsException異常情況publicfinalsynchronizedObjectfistElement()

返回向量的第一個元素。若向量為空,拋出一個

NoSuchElementException異常情況publicfinalsynchronizedObjectlastElement()

返回向量的最后一個元素。若向量為空,拋出一

NoSuchElementException異常情況

publicfinalsynchronizedvoidsetElementAt(Objectobj,intindex)

把給定對象存放到給定下標處,該下標處的原有對象丟失.若下標值非法,拋出異常情況ArrayIndexOutOfBoundsExceptionpublicfinalsynchronizedvoidremoveElementAt(intindex)

刪除給定下標處的向量元素,后面元素前移一個位置。若下標值非法,拋出異常情況ArrayIndexOutOfBoundsException

publicfinalsynchronizedvoidinsertElementAt(Objectobj,intindex)

把給定對象插入到指定下標處.該下標之后的元素后移一個位置.若下標值非法,拋出異常ArrayIndexOutOfBoundsExceptionpublicfinalsynchronizedvoidaddElement(Objectobj)

把給定對象增加到向量末尾publicfinalsynchronizedbooleanremoveElement(Objectobj)

從向量中刪除指定對象。若給定對象在向量中有多個,則只刪除其第一個實例。若向量中沒有這個對象,返回falsepublicfinalsynchronizedvoidremoveAllElements()

刪除向量中的所有對象。這時向量將變成空向量publicfinalsynchronizedStringtoString()

把向量轉換成字符串。請注意:這個方法實際上覆蓋了Object類中的toString()方法

和數(shù)組一樣,向量需要聲明并實例化才可使用,其內存空間通過new操作符分配的。例如:

VectortheVector=newVector();一個向量在被創(chuàng)建后,將自行在系統(tǒng)內部維護一個專用數(shù)組,并在必要時對數(shù)組大小進行動態(tài)調整。例如,如果插入一個向量元素時,向量的空間需求超過了這個內部數(shù)組的大小,向量將向系統(tǒng)申請一些新的內存空間。3.建立向量實例

例:

VectortheVector=

new

Vector();

for(inti=0;i<10;i++)

{

IntegernewInteger=

new

Integer(i);

theVector.addElement(newInteger);

}

4.向量的使用

創(chuàng)建向量實例之后,就可以把對象插入到向量。這時將用addElement()方法。addElement()方法把對象插入到向量末尾。

向量可用以保存任何類型的對象,同一個向量實例甚至還可以保存多種不同類型的對象。VectortheVector=new

Vector();StringtestString;

testString=“pai”;

theVector.addElement(testString);

FloattestFloat=newFloat(3.14);

theVector.addElement(testFloat);

testString=“Faill”;

theVector.addElement(testString);

testFloat=newFloat(59);//注:書上少此句

theVector.addElement(testFloat);

增加向量元素的另一方式是通過insertElementAt()方法。該方法把對象插入到向量的給定位置。下面的例子是給向量交錯插入一些浮點數(shù)和字符串。執(zhí)行這段代碼,將建立如下向量:

{“pai”,3.14,“Faill”,59}

另一經常用到的維護操作是從向量中刪除一個對象。這時有3個方法可用:

removeElement();刪除指定對象

removeElementAt();刪除給定位置處的對象

removeAllElement();刪除所有向量成員

前兩個方法在刪除一個元素之后,后面的對象將前移一個位置。

對于前面例子中介紹的向量,下面語句將刪除其中的3.14和59,而不是3.14和“Faill”。

FloatdeleteFloat=

new

Float(3.14);

theVector.removeElement(deleteFloat);

theVector.removeElementAt(2);

與數(shù)組相比,向量的優(yōu)勢之一在于它提供了豐富的方法,以便能方便快捷地從向量中查找對象。對象查找中最常遇見的情況是給定一個下標值,希望由此確定該下標處的對象。這時可使用elementAt()方法。5.對象查找

對應前面的程序,下面這行程序返回一對象引用,該引用指向向量成員”pai”

ObjecttempObj=theVector.elementAt(0);

當需要確定向量中是否包括了某一確定的對象時,可使用contains()方法。publicfinalBoolean

contains(Objectelem);

這個方法返回一布爾值。若向量包含了對象elem,返回true,否則返回false。

用下標來訪問數(shù)組元素,這是使用數(shù)組的最有效方法。向量成員也可用下標進行訪問,

方法有:

elementAt()

返回給定下標處的對象

indexOf()

從給定下標處往后搜索向量中是否包含指定的的對象

lastIndexOf()從給定下標處往前搜索向量中是否包含指定的的對象利用下標進行訪問

indexOf()和lastIndexOf()方法的完整聲明形式如下:

publicfinalsynchronizedint

indexOf(Objectelem,intstart_index)

public

finalsynchronizedint

lastIndexOf(Objectelem,

int

start_index)

這兩個方法均用以從給定下標開始搜索向量,確定向量中是否包含了指定的對象。如果是,則返回該對象的下標值,否則返回-1。1.哈希表類的構造方法和成員方法

2.哈希表的使用

哈希表和向量一樣,可用以保存列表,列表中元素也必須都是對象。哈希表是一種支持對表中元素進行快速檢索的線性表,該線性表的重要特征在于表中元素的平均檢索時間與表中的元素個數(shù)無關。哈希表是利用“碼值(關鍵字)—元素”形式的存儲列表的元素,其中“碼值”表示元素在哈希表中的編碼(相當于索引),“元素”是元素的實際值。6.3.4哈希表類(Hashtable)及其應用1)構造方法

哈希表(Hashtable)類共有三種形式的構造方法:

public

Hashtable(int

initialCapacity,floatloadFactor);

參數(shù)initialCapacity給定哈希表創(chuàng)建初始可容納的元素數(shù)量,loadFactor為裝載因子,取值0.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論