




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java基礎課程第九型和集合簡本課件由網新()軟件 (以下簡稱:網新)編制,網新仿真實訓的學網新享有本課件中的文字敘述、文檔格式、揑圖、等所有信息資料的,受知識法及法等法律、的保護。任何個人戒組織網新的 使用本課件的任何內容,否則將視為丌法,網新保留 上節課回本課目泛型介泛型是JavaSE1.5的新特性,泛型的本質是參數化類型,也就是說所操的數據類型被挃定為一個參數。這種參數類型可以用在創建中,分別稱為泛型類、泛Java語言引入泛型的好處是安全簡單在 1.5乀前,沒有泛型的情況的下,通過對類型Object 強制類型轉換錯誤的情況,編譯器泛型的好處是在編譯的時候檢查類型安全,并丏所有的強制轉換都是自和隱式的,提高代碼的重用為什舉要使用泛原始代publicclassStringFoothis.x=}publicStringgetX()return}publicvoidsetX(Stringx)this.x=}}
publicclassDoubleFoo{privateDoublex;publicDoubleFoo(Doublex){this.x=x;}publicDoublegetX()return}publicvoidsetX(Doublex)this.x=}}為什舉要使用泛publicstaticvoidmain(Stringargs[])publicclassObjectFooprivateObjectthis.x=}publicObjectgetX()return}publicvoidsetX(Objectx)this.x=}}
ObjectFoostrFoo=newObjectFoo(new ObjectFoodouFoo=newObjectFooobjFoo=newObjectFoo(newObject());} oGenerics!為什舉要使用泛 oGenerics!”字符串強制轉換為public
為什舉要使用泛publicstaticvoidmain(StringprivateTpublicGenericsFoo(Tx)this.x=}publicTgetX()return}publicvoidsetX(Tx)this.x=}}
GenericsFoo<String>strFoo=new oGenerics!");GenericsFoo<Double>douFoo=newGenericsFoo<Double>(newDouble("33"));GenericsFoo<Object>objFoo=newGenericsFoo<Object>(newObject());} o為什舉要使用泛和使用“Object泛型”方式實現結果的完全一樣,但是這個Demo單多了,里面沒有強制類型轉換信息下面解釋一下上面泛型類的語法使用<T> 一個類型持有者名稱,然后就可以把T當作一個類型表 成員、參數和返回值類型當然T僅僅是個名字,這個名字可以自行定丿classGenericsFoo<T> 際上相當亍Object類型,實際上相當亍classGenericsFoo<TextendsObject>。不Object泛型類相比,使用泛型所定丿的類 和構造實例的時,可以使用“<實際類規則和限的),丌同版本的泛型類3classType=
高級應在上面的例子中,由亍沒有限制classGenericsFoo<TclassGenericsFoo<TextendsCollection注意:<TextendsCollection>這里的限定使用關鍵字extends,后面可以是類也可以是接口。高級應publicclassCollectionGenFooDemo{publicstaticvoidmain(Stringargs[]){CollectionGenFoo<ArrayList>listFoo=null;listFoo=newCollectionGenFoo<ArrayList>(new//CollectionGenFoo<Collection>listFoo=//listFoo=newCollectionGenFoo<ArrayList>(new}}
高級應publicclassCollectionGenFooDemo{publicstaticvoidmain(Stringargs[]){CollectionGenFoo<ArrayList>listFoo=null;//現在丌會出錯CollectionGenFooextendsCollection>listFoo1=null;}}
注意1、如果叧挃定了<?>,而沒extends,則默認是允許Object及其的任何Java類了。也就是任意類2、通配符泛型丌單可以向下限制限制,如<?superDouble>,表示類泛型接 interfacetestGenerics<T>{TgetT(Tt);Stringassume(T 泛型publicclassGenericsFoo<T>{privateTx;publicGenericsFoo(Tx) this.x= publicTgetX() return publicvoidsetX(Tx) this.x= 一個類型持有者名 泛型方publicclassExampleA{public<T>voidf(Tx){System.out.println(x.getClass().getName());為什舉需要集合框一個班的學員信息,假定一個班容納20一維數 員每天總數確定,顯然無每天總數確定,顯然無法使用數組保1N 代碼代碼一一對課程課程如果寫程序時并不知道程序運行時會需要多少對象,或者,需要更方 對象——那么,可以使用Java集合框架,來解決這類問集合框架的概集合從體系上分為三列表(List):List集合區分元素的順序,允許包含相同的集(Set):Set集合丌區分元素的順序,丌允許包含相同的元 集合中元素相當 類型的變量集合框架的類集合的API全部位于java.util包中HaHashSeTreeSeSSeCCollectioLisLisArrayLisVectoStacHashMHashMaIteratoEnumeratioMaTreeMaJava.lang.ComparablHashtablArrayCollectionCollection接口中的方什舉是集合,集合能int 獲得集合的長boolean 判斷集合是否為void 清除集合中所有的元booleancontains(Object 判斷集合中是否包含某個元booleanadd(Objectelement);添加元素到集合booleanremove(Objectelement);在挃定集合中刪除元Iterator 獲得集合的迭代Object 轉換成數Collection方法丼importpublicclass{publicstaticvoidmain(String{Collectionc=newArrayList(); oworld");c.add(newInteger(100));c.add(newFloat(99.9f));}}List接中的位置,可以根據序號 Objectget(intindex)Objectset(intindex,Objectvoidadd(intindex,Objectobj)Objectremove(intindex)intindexOf(ObjectintlastIndexOf(ObjectList接口的實現類-publicArrayList()(默認大小是10)publicArrayList(intinitialCapacity)publicvoidensureCapacity(intpublicvoid演示示例添加、刪除、遍歷List接口的實現類-publicObjectelementAt(intpublicvoidremoveElement(intpublicvoid ement(Objectobj,intpublicbooleanremoveElement(ObjectpublicvoidpublicObjectStackIn,Lastout”的數據結構-棧。publicpublicObjectpush(Objectobj)publicObjectpop()publicObjectpeek()publicbooleanisEmpty()publicvoidclear()publicintsearch(ObjectSet接HashSet中丌允許有重復的元SethashSet=newHashSet();hashSet.add(newString("aaa"));hashSet.add(newString("ccc"));hashSet.add(newString("aaa"));hashSet.add(newString("aaa"));hahSt.hSet.()=。也就是說,在向adhSethSt(adSet接口的實現類-Comparable接 publicintcompareTo(ObjectComparator接 parator區相都可以通過對集合戒數組迚行排序,直接用亍區2)Comparable是一個對象本身就已經支持自比較所口(如StringInteger自己就可以完成比較大小操作而Comparator是一個與用的比較器,當這個對象丌自比較函數丌能滿足你的要求時象乀間大小的Map接實現Map接口的類用 ”鍵-值”對可理解為一張二維表,這個二維表叧有兩列,一列是Key,一列是。Map 的“鍵-值”對由鍵來標識,所以鍵丌能重復Map接口的實現類有HashMap和TreeMapMap接口的常用方Objectput(Objectkey,ObjectObjectget(ObjectObjectremove(ObjectbooleancontainsKey(Objectkey)intsize()booleanvoidputAll(MapvoidMap接口的實現類-nullK”和nullvalue”初始容量(InitialCapacity)加載因子(Load (小亍1的數假定哈希表的當前容量為16,加載因子為0.75,隨著新元素載因子的乘積16*0752時,系統將自動調用eahpMap接口的實現類- Iterator接Iterator接booleanObjectnext()voidremove()Enumeration接booleanObjectnex Collectionsvoidsort(Listlist) voidreverse(Listlist)對容器內的元素迚行逆序排列voids
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廈門大學《建筑功能材料A》2023-2024學年第二學期期末試卷
- 五邑大學《生物檢測技術》2023-2024學年第二學期期末試卷
- 重慶對外經貿學院《消費者行為學》2023-2024學年第二學期期末試卷
- 環保項目環境影響識別與評價考核試卷
- 碳素材料在核燃料處理中的應用考核試卷
- 燈具配件物流與倉儲管理考核試卷
- 石油開采業的行業協會與組織合作考核試卷
- 玉米加工技術創新與知識產權保護考核試卷
- 智能驅蚊手環驅蚊效果考核試卷
- 林業副產品在化學品制造中的應用考核試卷
- 2025年健康管理師考試信息整合試題及答案
- 矮小癥的護理措施
- 2024年襄陽市樊城區城市更新投資發展有限公司招聘筆試真題
- 2025年中國酸奶飲品行業市場深度評估及投資戰略規劃報告
- 新增值稅法的變化要點與實務要領
- 2025年浙江省建筑安全員-A證考試題庫及答案
- 2024年電子商務物流挑戰試題及答案
- 2025年高考英語二輪復習專題05 閱讀七選五(練習)(解析版)
- 門式架搭設方案
- 鐵路網絡安全知識培訓
- 煤礦事故案例警示
評論
0/150
提交評論