工具類及常用算法課件_第1頁
工具類及常用算法課件_第2頁
工具類及常用算法課件_第3頁
工具類及常用算法課件_第4頁
工具類及常用算法課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

Java程序設(shè)計第7章工具類及常用算法Java程序設(shè)計第7章工具類及常用算法Java基礎(chǔ)類庫JDK中提供的基礎(chǔ)類庫又稱為JFC(javaFoundationClassLibrary),其中包含很多包,每個包中都有若干特定功能和相互關(guān)系的類和接口。一些經(jīng)常使用的包為:

java.lang包//默認(rèn)加載的包

java.io包

java.util包

java.awt包

java.applet包

……Java基礎(chǔ)類庫JDK中提供的基礎(chǔ)類庫又稱為JFC(javaJava語言基礎(chǔ)類java.lang

這個包包含了運行程序不可少的類,包括基本數(shù)據(jù)類,基本數(shù)學(xué)類,字符串處理,異常處理等等。該包在程序時自動引入。

java.io

標(biāo)準(zhǔn)的輸入輸出類庫,包含程序與系統(tǒng),用戶以及其他程序做的數(shù)據(jù)交換使用的類,包括基本I/O,文件I/O等。完成與操作系統(tǒng)有關(guān)的

I/O操作需要用到該包。Java語言基礎(chǔ)類java.langJava語言基礎(chǔ)類java.util包括一些實用工具,如Date類,Vector類,Stack類等。使用它們可以方便編程。

java.awt圖形用戶界面(GUI)類庫。包括許多界面和資源,如Graphics類,Container類等等。可以利用該包編寫標(biāo)準(zhǔn)化的應(yīng)用程序界面。

java.applet

用來實現(xiàn)運行于瀏覽器中的JavaApplet的工具類庫,常用的類是java.applet.Applet。Java語言基礎(chǔ)類java.utilJava語言基礎(chǔ)類其他包 還有一些其他的包,如java.rmi是實現(xiàn)遠(yuǎn)過程調(diào)用功能,可以在遠(yuǎn)程機器上創(chuàng)建對象,在本地機器上使用;java.sql包是實現(xiàn)JDBC的類庫。利用這個包可以是程序訪問不同類型的數(shù)據(jù)庫。只要安裝了對應(yīng)的驅(qū)動程序,同一個程序就可以訪問不同的數(shù)據(jù)庫。 如果想要詳細(xì)了解這些系統(tǒng)的類庫,可以參考JDK的文檔。Java語言基礎(chǔ)類其他包Java語言基礎(chǔ)類Object類

Object類是所有類的直接或間接父類,也是類庫當(dāng)中所有類的父類,可以和任意類型的對象匹配。所以可以用它作為形參的類型,那么不論何種類型的實際參數(shù)都可以與這個形參匹配,從而擴大了方法得適用范圍。 常用得方法:

protectedObjectclone();//生成當(dāng)前對象得備份

publicbooleanequals(Objectobj);//比較兩個對象

publicStringtoString();//返回當(dāng)前對象得相關(guān)信息

Java語言基礎(chǔ)類Object類Java語言基礎(chǔ)類equals方法該方法用來比較兩個對象是否相同,相同返回true,否則返回false。如果一個類沒有覆蓋equals方法,那么這時候的相等是指兩個引用相等,也就是說他們引用的是同一個對象。Java語言基礎(chǔ)類equals方法Java語言基礎(chǔ)類equals方法運算符==關(guān)系運算符生成的是一個“布爾”結(jié)果。它評價的是運算對象值之間的關(guān)系。運算符==適用于所有對象,但它的含義通常會使人找不到北。(見例子)一般人都會認(rèn)為輸出結(jié)果肯定先是true,再是false,因為兩個Integer對象都是相同的。但盡管對象的內(nèi)容相同,句柄卻是不同的,而==比較的正好就是對象句柄。所以輸出結(jié)果實際上先是false,再是true。Java語言基礎(chǔ)類equals方法Java語言基礎(chǔ)類equals方法若想對比兩個對象的實際內(nèi)容是否相同,又該如何操作呢?此時,必須使用所有對象都適用的特殊方法equals()。(例子)正如我們預(yù)計的那樣,此時得到的結(jié)果是true。但事情并未到此結(jié)束!假設(shè)您創(chuàng)建了自己的類,就象下面這樣(舉例)此時的結(jié)果又變回了false!這是由于equals()的默認(rèn)行為是比較句柄。所以除非在自己的新類中改變了equals(),否則不可能表現(xiàn)出我們希望的行為。大多數(shù)Java類庫都實現(xiàn)了equals(),所以它實際比較的是對象的內(nèi)容,而非它們的句柄。Java語言基礎(chǔ)類equals方法Java語言基礎(chǔ)類equals方法總結(jié)的來講,也就是說:

equals()默認(rèn)的是比較句柄,因為JDK中的許多類在實現(xiàn)的時候都覆蓋了equals()方法,所以一般使用java類庫中的equals時,比較的是對象的內(nèi)容;但是,如果用戶自己定義一個類,又沒有改寫equals()方法,那么它比較的是句柄,除非用戶自己寫equals()方法來使得它的功能為比較對象的內(nèi)容。Java語言基礎(chǔ)類equals方法Java語言基礎(chǔ)類toString()toString()方法用來返回對象的字符串表示,可以用來顯示一個對象。System.out.println()方法如果帶的參數(shù)是一個對象的話,那么它會自動調(diào)用對象的toString()方法,那么它顯示的將是“類名@內(nèi)存地址”。在自定的類中一般來講覆蓋toString()方法。(舉例2個)Java語言基礎(chǔ)類toString()Java語言基礎(chǔ)類

基本數(shù)據(jù)類型包裝類

java中提供了基本數(shù)據(jù)類型的包裝類,以于面向?qū)ο蟮乃枷胍恢隆?yīng)的也有8種:

Character,Byte,Short,Integer,Long,Float, Double,Boolean。他們都是作為類來使用。

1、提供一些常數(shù)方便使用,Integer.MAX_VALUE,Double.NaN等。

2、提供valueOf(String),toString() 3、通過xxxValue()得到所包裝的值

4、對toString(),equals()等方法進行覆蓋(舉例)Java語言基礎(chǔ)類基本數(shù)據(jù)類型包裝類例7-4classDoubleString{ publicstaticvoidmain(String[]args) {

doubled; Strings; //double轉(zhuǎn)換成String的幾種方法

d=3.1415926; s=""+d; s=Double.toString(d); s=newDouble(d).toString(); s=String.valueOf(d);//string轉(zhuǎn)換成double的幾種方法

s="3.1414926"; try{ d=Double.parseDouble(s); d=newDouble(s).doubleValue(); d=Double.valueOf(s).doubleValue(); }catch(NumberFormatExceptione) { e.printStackTrace(); }

}}例7-4classDoubleString補充:裝包與拆包JDK1.5之前,基本數(shù)據(jù)類型和包裝類不能對等使用。

Integeri=newInteger(3);裝包

intiv=Value();拆包JDK1.5之后,可以自動的進行裝包和拆包:自動裝包是指基本類型自動轉(zhuǎn)化為包裝類型,自動拆包指包裝類自動轉(zhuǎn)化為基本類型。

Integeri=3;

intiv=I;補充:裝包與拆包JDK1.5之前,基本數(shù)據(jù)類型和包裝類不能對Java語言基礎(chǔ)類Math類該類提供了一些不同標(biāo)準(zhǔn)的數(shù)學(xué)函數(shù)的方法,這些都是static方法,所以使用的時候不用創(chuàng)建Math類的對象,可以直接通過類名來調(diào)用這些方法:Math.所要用的方法。方便編程。關(guān)于具體的方法和屬性,可以查詢JDK的幫助文檔。(舉例)Java語言基礎(chǔ)類Math類例7-5classTestMath{ publicstaticvoidmain(String[]args) { inta=3; doubleb=1.5,c=32.2; doublef=0.0; f=1.0/2*(a+Math.sqrt(b*Math.sin(c))); System.out.println("f="+f); System.out.println("Math.ceil(3.1415)="+Math.ceil(3.1415)); System.out.println("Math.floor(3.1415)="+Math.floor(3.1415)); System.out.println("Math.round(987.654)="+Math.round(987.654)); System.out.println("Math.max(-987.654,301)="+Math.max(-987.654,301)); System.out.println("Math.PI="+Math.PI); }}例7-5classTestMathJava語言基礎(chǔ)類System類該類是一個非常有用的特殊類,提供了標(biāo)準(zhǔn)輸入/輸出、運行時系統(tǒng)信息等工具。由于該類的一些屬性和方法這些都是static的,所以使用的時候不能創(chuàng)建System類的對象,可以直接通過類名來調(diào)用這些方法:System.所要用的方法。

Java語言基礎(chǔ)類System類Java語言基礎(chǔ)類用system類獲得標(biāo)準(zhǔn)輸入輸出publicstaticInputStreamin;publicstaticPrintStreamout;publicstaticPrintStreamerr;使用這些可以從標(biāo)準(zhǔn)輸入讀入數(shù)據(jù)或向標(biāo)準(zhǔn)輸出輸出數(shù)據(jù)。用system類的方法獲得系統(tǒng)信息system類提供一些與運行時系統(tǒng)交互的方法,可以利用它們獲得解釋器或系統(tǒng)的信息,也可以向運行系統(tǒng)發(fā)出指令。

publicstaticlongcurrentTimeMillis();publicstaticvoidexit(intstatus);Java語言基礎(chǔ)類用system類獲得標(biāo)準(zhǔn)輸入輸出示例7-6主要用來測試System類的基本屬性及功能*/importjava.util.*;classTestSystem{ publicstaticvoidmain(String[]args) { Propertiesa; Enumerationps; Iteratorpi; a=System.getProperties(); a.setProperty("test_path","2"); //System.setProperties(a); System.out.println(System.getProperty("test_path")); System.out.println(System.getProperty("java.version")); /* pi=a.entrySet().iterator(); while(pi.hasNext()) {System.out.println(pi.next());} */ ps=pertyNames(); while(ps.hasMoreElements()) {Objectobj=ps.nextElement();ObjectobjVal=a.get(obj); System.out.println(""+obj+"="+objVal); } }}示例7-6主要用來測試System類的基本屬性及功能*/字符數(shù)組與字符串字符串是字符的序列,它是組織字符的基本數(shù)據(jù)結(jié)構(gòu),從某種程度上來說有些類似于字符的數(shù)組。

char[]country={‘C’,’h’,’i’,’n’,’a’};[C++?]在Java中,字符串被當(dāng)作對象來處理。程序中需要用到的字符串可以分為兩大類,一類是創(chuàng)建之后不會再做修改和變動的String類;另一類是創(chuàng)建之后允許再做更改和變化的StringBuffer類。

Java會自動為字符串常量生成一個String類的對象,所以可以直接初始化String對象,如:

Strings=“SCEMIXMJ!”字符數(shù)組與字符串字符串是字符的序列,它是組織字符的基用一個已創(chuàng)建的字符串創(chuàng)建另一個字符串,如:

Strings1=newString(s);創(chuàng)建字符串對象使用String類的構(gòu)造方法創(chuàng)建字符串對象,如:

Strings=newString(“WeareChinese");String(chara[]):用一個字符數(shù)組a創(chuàng)建一個字符串對象,如:

chara[]={‘X’,‘M’,‘J’};Strings=newString(a);String(chara[],intstartIndex,intcount):提取字符數(shù)組a中的一部分字符創(chuàng)建一個字符串對象,如:

chara[]={‘S’,‘C’,‘E’,‘M’,‘I’,‘X’,‘M’,‘J’};Strings=newString(a,5,3);用一個已創(chuàng)建的字符串創(chuàng)建另一個字符串,如:創(chuàng)建字符串對象使用String類常用方法publicintlength()

獲取字符串的長度

publicbooleanequals(Strings)

比較當(dāng)前字符串對象的實體是否與參數(shù)指定的字符串s的實體相同publicbooleanstartsWith(Strings)publicbooleanendsWith(Strings)

判斷當(dāng)前字符串對象的前綴[后綴]是否是參數(shù)指定的字符串spublicintcompareTo(Strings)

比較大小[等0;大正;小負(fù)]String類常用方法publicintlength()Strings1=newString(“中國.四川”);Strings2=newString(“中國.四川”);Strings3=newString(“中國”);Strings4=newString(“四川”);System.out.println(s1.length());//?System.out.println(s3.length());//?System.out.println(s1==s2);//?System.out.println(s1.equals(s2));//?System.out.println(s1=s2);//?System.out.println(s1==s2);//?System.out.println(s1.equals(s2));//?System.out.println(s1.startsWith(s3));//?System.out.println(s1.endsWith(s4));//?System.out.println(pareTo(s2));//?System.out.println(pareTo(s4));//?52falsetrue中國.四川truetruetruetrue0-2222Strings1=newString(“中國.四川”);JAVA程序設(shè)計2006.02BySCEMIXMJString類常用方法publicintindexOf(Strings[,intstartpoint])publicintlastIndexOf(Strings)

返回首次出現(xiàn)s的位置。[沒有-1]。publicStringsubstring(intstartpoint[,intend])

從start處截取到尾部[end處]所得到的字符串。publicStringtrim()

去掉前后空格publicStringreplaceAll(Stringold,Stringnew)

用參數(shù)new指定的字符串替換由old指定的所有字符串publiccharcharAt(intindex)

返回第index個字符JAVA程序設(shè)計2006.02BySCEMIXMJSStrings1=newString(“中國.四川.攀枝花”);Strings2=newString(“WearelikeJava”);System.out.println(s1.indexOf(“china”));//對?System.out.println(s2.indexOf(‘a(chǎn)’));//對?System.out.println(s2.indexOf(“a”));//?System.out.println(s2.lastIndexOf(“a”));//?System.out.println(s2.indexOf(“a”,6));//?System.out.println(s2.indexOf(“Java”));//?System.out.println(s1.charAt(6));//?System.out.println(s2.charAt(12));//?System.out.println(s1.substring(3));//?System.out.println(s1.substring(3,5));//?System.out.println(s1.replaceAll(‘.’,‘,’));//對?System.out.println(s1.replaceAll(“.”,“#”));//?System.out.println(s2.replaceAll(“a”,“b”));//? -1 3 3 15 13 12

J

四川.攀枝花四川語法錯#########WebrelikeJbvbStrings1=newString(“中國.四川.攀枝字符串與基本數(shù)據(jù)的相互轉(zhuǎn)換將基本類型數(shù)據(jù)轉(zhuǎn)換為String型:

String.valueOf(基本數(shù)據(jù)類型)

例:String.valueOf(0.34)“0.34”將String型轉(zhuǎn)換為基本類型數(shù)據(jù):[03-18提及]Integer.parseInt(Strings)

……Double.parseDouble(Strings)例:Double.parseDouble(“12.34”)12.34對象的字符串表示對象名.toString()Datedate=newDate()date.toString()字符串與基本數(shù)據(jù)的相互轉(zhuǎn)換將基本類型數(shù)據(jù)轉(zhuǎn)換為String型JAVA程序設(shè)計StringBuffer類創(chuàng)建StringBuffe對象StringBuffer()StringBuffer(intsize)StringBuffer(Strings)length()

字符個數(shù)StringBuffersb=newStringBuffer()sb.length()//0StringBuffersb=newStringBuffer(32)sb.length()//0sb.capacity()//32StringBuffersb=newStringBuffer(“SCEMIXMJa”)sb.length()//9sb.capacity()//25=9+16JAVA程序設(shè)計StringBuffer類創(chuàng)建StringBStringBuffer類常用方法voidsetCharAt(intn,charch)

用字符ch替換第n個字符StringBufferinsert(intindex,Stringstr)

將字符串str插入從index起的當(dāng)前字符串中append

[數(shù)據(jù)轉(zhuǎn)化后]追加publicStringBufferreverse()

字符翻轉(zhuǎn)StringBufferdelete(intstartpos,intendpos)

刪除startpos到endpos-1子串StringBufferreplace(intn,intm,Stringstr)

用串str替換當(dāng)前串從n到m-1的子串StringBuffer類常用方法voidsetCharAStringBufferstr=newStringBuffer(“123”)str.append(456);//對嗎?str=str+“789”//對嗎?str.append(“789”);//str?System.out.println(str.setCharAt(0,‘a(chǎn)’));//錯voidstr.setCharAt(0,'a');//str?System.out.println(str);//??str.insert(1,“***”);//str?str.delete(1,4);//str?str.reverse();//str?str.replcae(0,2,“###”);//對嗎?str.replcae(5,7,“##”);//str?str.length()//?str.capacity()//?對str=“123456”錯str=“12346789”str=“a2346789”str=“a***23456789”str=“a23456789”str=“98765432a”對str=“###765432a”str=“###76##32a”1019StringBufferstr=newStringBuf2006.02BySCEMIXMJStringTokenizer類分解字符串成可被獨立使用的單詞[java.util包]創(chuàng)建StringTokenizer對象

StringTokenizer(Strings)StringTokenizer(Strings,Stringdelim)StringTokenizer類常用方法

countTokens() 單詞計數(shù)變量hasMoreTokens() countTokens>0truenextToken() 逐個獲取單詞2006.02BySCEMIXMJStringTokimportjava.util.*;publicclassST{publicstaticvoidmain(String[]args){Stringstr=“中國.四川.攀枝花”;StringTokenizerst=newStringTokenizer(str,“.”);intnumber=st.countTokens();System.out.println(“共有單詞:”+number);while(st.hasMoreTokens()){System.out.print(number-st.countTokens()+“:”);System.out.println(st.nextToken());}}}共有單詞:30:中國

1:四川

2:攀枝花importjava.util.*;共有單詞:3字符串?dāng)?shù)組字符串?dāng)?shù)組:可以表示一組字符串publicclassStrArray{publicstaticvoidmain(String[]args){for(inti=0;i<args.length;i++) System.out.println(args[i]);}}javacStrArray.javajavaStrArray1st2nd3rd字符串?dāng)?shù)組字符串?dāng)?shù)組:可以表示一組字符串publiccla集合類狹義來講,集合實際上是用一個數(shù)組代表一組對象,在集合中的每一個對象稱為一個元素。在集合中的各個元素的具體類型可以不同,一般說來,它們都是由相同的類派生出來的,換言之,它們將其當(dāng)作Object類型處理(Object類型是Java中所有類的“根”類)。在集合中檢索出各個元素以后,一般來講需要根據(jù)具體類型的不同而進行相應(yīng)的類型轉(zhuǎn)換。集合類狹義來講,集合實際上是用一個數(shù)組代表一組對象,在集合中CollectionAPI中的接口和類主要位于java.util包中,其中最主要的接口是Collection,它將一組對象以集合元素的形式組織到一起,然后在其子接口中分別實現(xiàn)不同的組織方式。它的子接口有:Set:不記錄元素的保存順序,且不允許有重復(fù)的元素。List:記錄元素的保存順序,且允許有重復(fù)的元素。其中,實現(xiàn)Set接口的比較重要的類是HashSet;實現(xiàn)List接口的重要的類有ArrayList,Vector,LinkedList。CollectionAPI中的接口和類主要位于java.uCollectionAPI層次結(jié)構(gòu)<<interface>>Collection+add(element:Object):boolean+remove(element:Object):boolean+size():int+isEmpty():boolean+contains(element:Object):boolean+iterator():Iterator<<interface>>SetHashSet<<interface>>ListArrayListVectorCollectionAPI層次結(jié)構(gòu)<<interfac集合類Collection的方法Publicbooleanadd(Objecto);Publicbooleanremove(Objecto);Publicvoidclear();Publicbooleancontains(Objecto);Publicintsize();PublicbooleanisEmpty();PublicIteratoriterator();

集合類Collection的方法集合類Set接口以及HashSet類Set接口是Collection的子接口,擁有與Collection完全相同的接口,它沒有什么額外的功能。完全就是一個Collection,只是具有不同的行為而HashSet是實現(xiàn)Set接口的一個類。Set記錄的是不重復(fù)元素的集合。它里面也可以包含null對象,但一樣不可以重復(fù)。集合類Set接口以及HashSet類集合類List接口及ArrayList,Vector類

List接口也是Collection的子類,它表示對象可重復(fù)的集合。對于實現(xiàn)List接口的比較重要的類有:ArrayList,Vector,LinkedList。ArrayList、Vector可以說是java中的“動態(tài)數(shù)組”。數(shù)組在用new創(chuàng)建后,其大小是不能改變的,而ArrayList和Vector中的元素的個數(shù)是可變的,可以隨時添加和刪除。集合類List接口及ArrayList,Vector類Iterator接口Iterator接口定義了對Collection類型對象中所含元素的遍歷等增強處理功能可以通過Collection接口中定義的iterator()方法獲得一個對應(yīng)的Iterator(實現(xiàn)類)對象Set(實現(xiàn)類)對象對應(yīng)的Iterator仍然是無序的List(實現(xiàn)類)對象對應(yīng)的ListIterator對象可以實現(xiàn)對所含元素的雙向遍歷:使用next()方法和previous()方法Iterator接口Iterator接口定義了對CollecIterator接口層次<<interface>>Iterator+hasNext():boolean+next():boolean+remove()<<interface>>ListIterator+hasPrevious():boolean+previous():Object+add(element:Object)+set(element:Object)Iterator接口層次<<interface>>+hasN集合類Iterator和Enumeration存取集合中的元素可以有多種方法。對于ArrayList和Vector類,他們的元素與位置有關(guān),所以可以用與位置相關(guān)的方法來取得元素。所有的Collection都可以用Iterator來列舉元素,Vector類可以用Enumeration來列舉元素。前者中還有remove方法可用,所以功能更多。

AnIteratorisanobjectthatmovessequentiallyfromonecomponenttothenextthroughacollectionstructure,providingaccesstoitselements.集合類Iterator和Enumeration集合類使用Iterator接口很常見。對于實現(xiàn)Collection接口的類,都可以用。Iterator的方法有三個:PublicbooleanhasNext();PublicObjectnext();Publicremove();對于List,可以通過方法:listIterator()來得到一個ListIterator接口,從而取得元素的索引。ListIterator是Iterator的子接口,出上面三個方法外,還有:集合類使用Iterator接口很常見。對于實現(xiàn)Collect集合類booleanhasPrevious();Objectprevious();voidadd(Objecto);voidset(Objecto);等等對于Vector類,可以使用elements()方法返回一個

Enumeration接口,其方法有:

booleanhasMoreElements();ObjectnextElement();(舉例)集合類booleanhasPrevious();例7-11importjava.util.*;publicclassTestListAllElements{ publicstaticvoidmain(String[]args) { Vectorh=newVector(); h.add("lst"); h.add("java"); h.add("c"); h.add("basic"); printAll((Object)h); printAll((Collection)h); printAll((List)h); printAll((Vector)h);

}publicstaticvoidprintAll(Objectobj){ System.out.println(obj);}例7-11importjava.util.*;publicstaticvoidprintAll(Collections) { Iteratorit=s.iterator(); while(it.hasNext()) {System.out.println(it.next());} }publicstaticvoidprintAll(Lists) { ListIteratorit=s.listIterator(); while(it.hasNext()) { System.out.println(it.next()); }while(it.hasPrevious()) { System.out.println(it.previous()); }} publicstaticvoidprintAll(Vectors) { Enumeratione=s.elements(); while(e.hasMoreElements()) { System.out.println(e.nextElement()); } }}publicstaticvoidprintAll(Co集合類Map接口及Hashtable類Map接口提供了一組“關(guān)鍵字-值”的集合。Atable(alsocalledmap)isacontainerthatallowsdirectaccessbyanyindextype.agoodanalogyisadictionary;theindexvariableisthewordbeinglookedup,andtheelementthatitindexesisitsdictionarydefinition.Atableisasequenceofpairs.Thefirstcomponentofthepairiscalledkey.Thesecondcomponentiscalledthevalueofitskeycomponent.Atableisalsocalledamapbecausewethinkofthekeysbeingmappedintotheirvalues,likeamathematicalfunction:f(key)=value.集合類Map接口及Hashtable類集合類Map接口及Hashtable類Map接口的重要實現(xiàn)類有:Hashtable類。Hashtable中的每個關(guān)鍵字的元素都實現(xiàn)了hashCode()方法,為每一個元素返回一個對應(yīng)的值。該類的主要方法有:

publicvoidput(Objectkey,Objectvalue);publicObjectget(Objectkey);publicObjectremove(Objectkey);publicEnumerationkyes();集合類Map接口及Hashtable類例7-12importjava.util.*;classTestHashtable{ publicstaticvoidmain(String[]args) { Hashtableht=newHashtable(); ht.put("one",newInteger(1)); ht.put("two",newInteger(2)); ht.put("three",newInteger(3)); ht.put("four",newInteger(4)); ht.put("five",newInteger(5)); Enumerationem=ht.keys(); while(em.hasMoreElements()) {Objectkey=em.nextElement(); Objectvalue=ht.get(key); System.out.println(""+key+"="+value); } }}例7-12importjava.util.*;7.7.1泛型泛型(Generic)是JDK5.0增加的最重要的Java語言特性。使用泛型可以解決這種問題:程序可以針對不同的類有相同的處理辦法,但這些類之間不一定有繼承關(guān)系。Vector<String>v=newVector<String>();v.addElement(“one”);Strings=v.elementAt(0);7.7.1泛型泛型(Generic)是JDK5.0增加的7.7.2增強的for語句for(Photophoto:album){ System.out.println(photo.toString());}7.7.2增強的for語句for(Photophotimportjava.util.*;classStudent{ Stringname; intage; publicStudent(Stringname,intage) {=name; this.age=age; } publicvoidprintInfo(){System.out.println("name:"+name+"age:"+age);}}importjava.util.*;classEnrollmentCollection{ privateVectorstudents;

EnrollmentCollection() { students=newVector(); }publicbooleanenroll(Students) { if(students.contains(s))returnfalse; if(students.size()>8) returnfalse; students.add(s); returntrue; }publicbooleanunenroll(Students){if(students.contains(s)) {students.remove(s); returntrue;} else returnfalse; } publicintgetTotalEnrollment() { returnstudents.size();} publicStudentgetNthStudent(intn) {return(Student)students.elementAt(n);}

};

classEnrollmentCollection{classCourse{ StringcourseName; doublecredits; privateEnrollmentCollectionenrolledStudents; Course(Stringname,doublecredits) {courseName=name; this.credits=credits; enrolledStudents=newEnrollmentCollection(); } publicbooleanenroll(Students) { returnenrolledStudents.enroll(s); } publicbooleanunenroll(Students){ returne

溫馨提示

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

評論

0/150

提交評論