版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章集合框架和泛型第一單元第1頁/共37頁本門課程目標學完本門課程后,你能夠:運用Java常用API編寫程序通過Java程序來操作文件開發(fā)基于多線程的程序開發(fā)Java服務器/客戶端程序并實現(xiàn)通信定義并解析XML文件具有獨立分析問題和解決問題的能力,能夠勝任Java程序的開發(fā)第2頁/共37頁本章相關學習資源《集合框架及泛型》專題《使用Java高級實用技術》第1章《集合框架和泛型》第3頁/共37頁學習平臺“Java高級特性”課程學生用書預習檢查第4頁/共37頁至少說出Java集合框架中4個常用的接口或類。List接口和Map接口存儲數據的方式各自是什么?簡述泛型的作用。提問本章任務任務1:實現(xiàn)新聞標題查詢功能任務2:使用泛型改進新聞標題查詢功能第5頁/共37頁理解集合的概念及優(yōu)勢熟練使用各種集合類存儲數據使用Iterator接口遍歷集合泛型集合泛型接口、泛型類、泛型方法本章目標第6頁/共37頁點難點重點重點重串講:Java集合框架Java集合框架位于java.util包中,提供了一套性能優(yōu)良、使用方便的接口和類Java集合框架共有三大類接口:List、Set、Map第7頁/共37頁實線框表示實現(xiàn)類虛線框表示接口List接口存儲一組不唯一,有序(插入順序)的對象ArrayList類實現(xiàn)了長度可變的數組,在內存中分配連續(xù)的空間。遍歷元素和隨機訪問元素的效率比較高LinkedList類采用鏈表存儲方式。插入、刪除元素時效率比較高集合框架3101串講:List接口第8頁/共37頁串講:ArrayList常用方法方法名說明booleanadd(Objectobj)將元素添加到集合中booleanadd(intindex,Objectobj)將元素obj插入到集合的index索引位置Objectget(intindex)返回集合中索引為index的元素intindexOf(Objectobj)返回元素在集合中出現(xiàn)的索引Objectset(intindex,Objectobj)將index索引位置的元素替換為obj元素Objectremove(intindex)刪除并返回index索引位置的元素booleanisEmpty
()判斷集合是否為空booleancontains(Objectobj)判斷集合中是否包含obj第9頁/共37頁get(1)返回集合的第幾個元素?提問上機練習第10頁/共37頁完成時間:15分鐘共性問題集中講解需求說明存儲多個員工信息(包括工號、姓名、年齡,入職時間),逐條打印所有員工姓名,并輸出員工的個數分析使用ArrayList存儲數據元素個數不確定要求獲得元素的實際個數按照存儲順序獲取并打印元素信息練習串講:LinkedList常用方法LinkedList同樣提供了已學習的ArrayList方法方法名說明voidaddFirst(Objecto)將給定元素插入當前集合頭部voidaddLast(Objecto)將給定元素插入當前集合尾部ObjectgetFirst()獲得當前集合的第一個元素ObjectgetLast()獲得當前集合的最后一個元素ObjectremoveFirst()移除并返回當前集合的第一個元素ObjectremoveLast()移除并返回當前集合的最后一個元素第11頁/共37頁上機練習第12頁/共37頁完成時間:10分鐘共性問題集中講解需求說明存儲多個員工信息(包括工號、姓名、年齡,入職時間),當有新員工入職時,添加其信息;當有員工離職時,刪除其信息分析插入、刪除操作頻繁時,可使用LinkedList來提高效率LinkedList額外提供對頭部和尾部元素進行添加和刪除操作的方法練習串講:ArrayList與LinkedList對比ArrayList遍歷元素和隨機訪問元素的效率比較高插入、刪除等操作頻繁時性能低下ArrayList和LinkedList分別在何時使用?LinkedList插入、刪除元素時效率較高查找效率較低第13頁/共37頁問題串講:Set接口Set接口Set接口存儲一組唯一,無序的對象HashSet是Set接口常用的實現(xiàn)類HashSet允許集合元素值為null操作數據的方法與List類似,Set接口不存在get()方法第14頁/共37頁HashSetnewsTitleSet=newHashSet();NewTitlecar=newNewTitle(1,"汽車","管理員");//增加元素newsTitleSet.add(car);//遍歷集合for(Objectobj:newsTitleList){NewTitletitle=(NewTitle)obj; System.out.println(title.getTitleName());}示例串講:IteratorIterator接口表示對集合進行迭代的迭代器,專門實現(xiàn)集合的遍歷方法:hasNext():判斷是否存在另一個可訪問的元素next():返回要訪問的下一個元素System.out.println("使用Iterator遍歷,分別是:");Iteratorit=list.iterator();while(it.hasNext()){Stringname=(String)it.next();System.out.println(name);}返回類型是Object當有元素時返回true第15頁/共37頁上機練習完成時間:10分鐘共性問題集中講解第16頁/共37頁需求說明使用Iterator遍歷員工集合,打印員工姓名以及性別分析使用HashSet存儲員工信息使用Iterator遍歷HashSet集合練習串講:HashMapHashMap是Map接口最常見的實現(xiàn)類HashMapmap=newHashMap();map.put("班長","小張");//添加的數據轉換為Object類型map.put("學委","小李");map.put("體委","小王");Stringxiaozhang=(String)map.get("班長");需要強制類型轉換第17頁/共37頁HashMap如何存儲數據?有什么優(yōu)勢?存儲一組成對的鍵-值對象,提供key(鍵)到value(值)的映射,通過key來索引key不允許重復value允許重復添加的對象將轉換為Object類型串講:HashMap的常用方法方法名說明Objectput(key,value)將相互關聯(lián)的一個關鍵字(key)與一個值(value)放入該集合。Objectremove(Objectkey)從當前集合中移除與指定鍵相關的映射,并返回該鍵關聯(lián)的舊值。如果key沒有任何關聯(lián),則返回nullObjectget(Objectkey)獲得與關鍵字key相關的值。如果該鍵不關聯(lián)任何非null值,則返回nullbooleancontainsKey(key)判斷集合中是否存在關鍵字keybooleancontainsValue(value)判斷集合中是否存在值valuebooleanisEmpty()判斷集合中是否有存在元素voidclear()清除集合中所有元素int
size()返回集合中元素的數量SetkeySet()獲取所有鍵key的集合Collectionvalues()獲取所有值value的集合第18頁/共37頁上機練習需求說明輸入詩的名稱,查詢出詩的內容,當輸入“exit”時退出程序分析創(chuàng)建“詩”類Poem,屬性包括:名稱、作者、內容使用HashMap存儲詩的信息,將詩名稱作為key,詩內容作為value完成時間:15分鐘共性問題集中講解第19頁/共37頁練習串講:遍歷HashMapkeySet()方法獲取鍵的集合values()方法獲取值的集合使用HashMap存儲學生信息,學員英文名為鍵,學生對象為值遍歷鍵集和值集演示示例:遍歷HashMap第20頁/共37頁示例串講:Collections類Collections和Collection不同,前者是集合的操作類,后者是集合接口Collections提供的靜態(tài)方法sort():排序binarySearch():查找fill():替換第21頁/共37頁串講:Collections類操作集合如何讓打印出的結果是123?Collections類可以對集合進行排序、查找和替換操作實現(xiàn)一個類的對象之間比較大小,該類要實現(xiàn)Comparable接口重寫compareTo()方法ArrayListlist=newArrayList();list.add(2);list.add(3);list.add(1);打印輸出集合元素的結果是?演示示例:使用Collections排序第22頁/共37頁分析問題上機練習需求說明使用Collections類對員工集合按年齡進行排序并輸出排序后的信息分析員工類實現(xiàn)Comparable接口調用Collections類的sort()方法完成時間:10分鐘共性問題集中講解第23頁/共37頁練習小結如何判斷HashMap集合中是否存在某個關鍵字key?遍歷ArrayList集合的方式有幾種?第24頁/共37頁提問講解:泛型將對象的類型作為參數,指定到其他類或者方法上,從而保證類型轉換的安全性和穩(wěn)定性本質是參數化類型//創(chuàng)建學員集合ArrayList<Student>students=newArrayList<Student>();//創(chuàng)建學員類對象Studentstudent=newStudent();//創(chuàng)建詩類對象Poempoem=newPoem();//將兩個對象添加到list集合中students.add(student);students.add(poem);由于創(chuàng)建時已指定Student類型,所以這里會報錯第25頁/共37頁示例串講:泛型集合泛型集合可以約束集合內的元素類型典型泛型集合ArrayList<E>,HashMap<K,V><E>、<K,V>表示該泛型集合中的元素類型泛型集合中的數據不再轉換為Object第26頁/共37頁除了指定了集合中的元素類型外,泛型集合和之前學習的集合的用法完全一樣串講:ArrayList<E>和HashMap<K,V>ArrayList<E>第27頁/共37頁HashMap<K,V>//創(chuàng)建泛型集合ArrayList<NewTitle>newsTitleList=newArrayList<NewTitle>();//依次添加各類新聞標題newsTitleList.add(car);newsTitleList.add(test);Map<String,Student>students=newHashMap<String,Student>();students.put("Jack",student1);students.put("Rose",student2);限定集合元素的類型為NewTitle限定鍵的類型為String,值的類型為Student示例示例上機練習需求說明使用泛型集合改進查詢詩的信息的上機練習,實現(xiàn)對詩的信息的存儲和查詢功能。第28頁/共37頁完成時間:10分鐘共性問題集中講解練習講解:泛型的其他應用-泛型接口泛型接口就是擁有一個或多個類型參數的接口第29頁/共37頁publicinterface接口名<類型形參>{
方法名(類型形參類型形參實例);}publicinterfaceTestInterface<T>{publicTprint(Tx);}不具體指定數據類型,由使用此接口的用戶決定數據類型示例語法講解:泛型的其他應用-泛型類泛型類就是具有一個或者多個類型參數的類第30頁/共37頁publicclass類名<類型形參>{
方法名(類型形參類型形參實例){
方法執(zhí)行體}}publicclassStudent<T>{publicTprint(Tx){//方法體}}不具體指定數據類型,由使用此接口的用戶決定數據類型語法示例講解:泛型的其他應用-泛型方法泛型方法就是帶有類型參數的方法第31頁/共37頁修飾符<類型形參>返回值方法名(不指定|類型形參|正常參數,……){
方法體}public<T>voidfromArrayToList(T[]t,List<T>list) //執(zhí)行方法}不指定具體的返回類型或者參數,由使用此方法的用戶決定語法示例講解:泛型應用需求說明定義泛型接口并添加獲取字段方法,將類型參數做為此方法返回類型定義泛型類實現(xiàn)上述泛型接口,添加一個字段并將類型參數作為字段的類型,在構造函數中初始化此字段在main()方法中實例化泛型接口,調用獲取字段方法并打印演示示例:泛型應用第32頁/共37頁講解:多參數泛型類HashMap<K,V>屬于多個參數的泛型類第33頁/共37頁兩個類型形參,用逗號隔開classGenericDemo<T,V>{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024教師勞務派遣合作合同
- 2024文化石定制加工及售后服務合同范本2篇
- 美容美發(fā)前臺工作感受
- 提升地方文獻保護意識的活動策劃計劃
- 2024年虛擬現(xiàn)實游戲開發(fā)認購合同2篇
- 2025版知識產權質押合同延續(xù)補充協(xié)議3篇
- 游泳館的衛(wèi)生保潔規(guī)范
- 2025年度KTV聯(lián)盟商家會員生日派對服務合同3篇
- 2024庭院景觀戶外泳池設備安裝與維修合同范本3篇
- 2024年股權投資基金托管協(xié)議
- 漢語拼音字母表
- 中天項目管理標準化講義(文明施工、CIS、防護設施)
- IT運維服務項目技術外包合同
- 調味料生產工藝流程圖
- 2023北師大版六年級上冊數學期末試卷(共8套)
- 企業(yè)的涉稅風險
- 武漢大學抬頭信簽紙
- 新人教版七年級下冊生物每課知識點總結
- 印刷作業(yè)指導書
- 2022年農業(yè)示范基地建設工作總結
- 硬筆書法比賽方案精選
評論
0/150
提交評論