第18天視頻筆記隨堂_第1頁
第18天視頻筆記隨堂_第2頁
第18天視頻筆記隨堂_第3頁
第18天視頻筆記隨堂_第4頁
第18天視頻筆記隨堂_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第 18 天集合對象 3第 18 天授課內容1、泛型的引入和體現(掌握泛型的使用及書寫)2、泛型的簡單應用(掌握泛型的書寫)3、泛型類的使用 (會書寫泛型類)4、方法上的泛型 (會書寫泛型方法)5、泛型接口(會書寫泛型接口,了解泛型的傳遞)6、泛型的通配符 (掌握)7、集合框架-Map 集合8、Map 集合方法介紹1、泛型的引入和體現案例:向集合對象中,字符串,并輸出集合中所字符串的長度在開發(fā)中,向集合中添加的元素,是有可能用戶自己錄入,在用戶錄入時就有可能存在錄入的數據不是字符串解決方案:1、使用 instanceof 判斷,避免發(fā)生 ClassCastException 異常2、在 Jdk

2、1.5 后,出現了一種新的技術可以解決問題:泛型在集合中可以多種類型的元素,但是因為存在多種不同類型,就會產生的數據發(fā)生轉換異常,此時就造成數據不安全性泛型:用來規(guī)范(約束)集合中所的類型。(當集合中的只某種類型時泛型就可以起到作用)回顧數組:結論:泛型是屬于編譯時期使用的技術泛型的使用?注意:中所的泛型只能是類型案例:使用泛型解決之前程序中注意:在定義泛型時,等號兩邊的泛型參數必須屬于同一種類型案例:泛型的體現小結:泛型的好處:1、 提高了集合中數據的安全性2、 把運行時可能發(fā)生的異常,轉到編譯時期,作為編譯錯誤處理3、 省略了強制類型轉換的書寫2、泛型的簡單應用需求:向集合中添加學生對象,

3、要求按照學生的進行從小到大排序3、泛型類的使用泛型類:在書寫的類上使用泛型案例:定義一個工具類,在工具類有一個成員,可以對這個成員進行操作(賦值、取值)解決方案:在 Tools 類中使用泛型技術4、方法上的泛型方法上使用泛型的格式:修飾符號 返回值類型 方法名(泛型)例:public voidmethod(T t)案例:方法上的泛型另一種寫法: 在類寫兩個泛型參數5、泛型接口泛型接口:在定義接口時使用泛型技術案例:泛型接口的應用問題:子類如果繼承父類時,在繼承中父類也沒有明確泛型類型時,還有泛型傳遞嗎?肯定有。小結:書寫在類上的泛型,稱為泛型類例: classMyClass書寫在方法上的泛型,

4、稱為泛型方法例: public void method(X x)書寫在接口上的泛型,稱為泛型接口例:erfaceerA 在子類實現接口或繼承父類時,如果接口或父類沒有明確泛型的類型時,父類上的泛型會傳遞給子類例: class Child extends FatherclasserImplimplementser回顧:泛型:用來約束集合中泛型的使用:的類型。List集合對象= new 集合類();List 集合對象 = new 集合類();使用泛型的好處:1、 提高了集合中數據的安全性2、 把運行時發(fā)生的異常轉為編譯期錯誤處理3、 省略類型的強制轉換在類上定義泛型,稱為泛型類; 在方法上定義泛型

5、稱為泛型方法;在接口上定義泛型稱為泛型接口泛型傳遞: 當子類繼承或實現父類/接口時,在父類/接口上沒有明確泛型的參數類型,此父類/接口上泛型的會傳遞給子類(子類就具備了父類或接口上的泛型)6、泛型的通配符6.1泛型中通配符的使用泛型是用來約束集合中元素類型案例 1:向相同的集合中,相信相同類型的元素案例 2:向不同的集合中,相同類型的元素案例 3:向不同集合中,不同的類型的對象。:Student、Worker想要解決以上程序中存在泛型的通配符: ?,需要使用泛型技術中的通配符:?表示任意類型6.2通配符的限定案例:向不同的集合中,只能Student 和Worker在使用泛型中的通配符時,可能結

6、合 java 面通配符的限定:象中的特征,給?添加約束范圍:上限:?下限:例:?只能是的子類或super子類例:?只能是 Student 的父類或 Student案例:使用通配符的限定解決以上程序中問題小結:泛型的通配符:通配符的限定:?表示任意類型上限:?下限: super 子類7、foreach 循環(huán) & Enumeration7.1foreach 循環(huán)在學習數組和集合時,對于帶有角標的數組和集合,可以利用角標遍歷對于沒有角標可用的集合對象,使用迭代器對象遍歷從 JDK1.5 開始,提供了一種新的遍歷方式:foreach 循環(huán)(高級 for 循環(huán))foreach 循環(huán)的格式:也是使用 fo

7、r 關鍵字for(容器中元素的類型 變量/: 容器)foreach 循環(huán)就是為了簡化 Iterator 遍歷的 (foreach 也只是遍歷,不去增刪操作)案例:數組中的 foreach案例:集合中的 foreach注意:不是所有的集合都可以被 foreach 遍歷的。只能實現 Iterable 接口才可以被 foreach遍歷結論:在使用 foreach 時,通常只是用來遍歷容器中的元素7.2Enumeration案例:Enumeration 的應用8、集合框架:Map 集合8.1Map 集合介紹在之前,已經學習過了 Collection 集合下相關集合類,而在使得 Collection 集

8、合元素時,一次只能一個元素對象。例: List list = new ArrayList();list.add(“元素”);/只能一個對象在開發(fā)中,會存在需要兩個對象的情況:一日0 -1-解決方案:可以使用查表法(不通過集合對象)另一種需求:“Sunday”-“日”“Monday”-“一”在集合框架體系中,存在一種集合:Map。Map 集合在元素時,可以一次兩個對象通過查閱 API: 1、 Map 集合中2、 Map 集合中所3、 Map 集合中所的是一對對象(兩個對象:一個是鍵, 一個值)的對象是有對應關系(的鍵,不能有重復值關系)4、 Map 集合中的鍵和值,屬于一一對應關系在 Map 集

9、合中的,鍵表示 K(Key), 值表示 V(Value)。Key 和 Value解決方案:使用兩個集合分別:Sunday Monday日一集合 1:“Sunday” “Monday”集合 2:“日”“一”問題:怎么通過英文名獲取實際的中文?index = 集合 1 . indexOf(“Sunday”); Stringk = 集合 2 . get(index);使用以上方案可以解決問題,但是存在弊端:1、 兩個集合中所的元素必須是相同角標 (在不同角標,就會出現數據錯誤)2、 書寫麻煩。 在時,需要使用兩個集合分別不同的數據另一種解決方案: 使用兩個集合分別:0、1; Sunday、Monda

10、y小結:Map 集合是用來兩個對象的集合,的是 Key 和 Value 對象的關系Collection 集合只能一個對象,稱為單列集合雙列集合:是由兩個單列集合組成,可以同時兩個對象8.2Map 集合的基本使用Map 集合中常用方法介紹:添加方法: Objectput(K key,V value)向集合中Key 和 Value 對象在向 Map 集合中對象時,會先拿 key 對象去 Map 集合中遍歷,查找是否有相同的 Key 元素存在,如果沒有相同的 Key 元素存在,則把 Key 和 Value一起到Map 集合中,并返回null ; 如果有相同的Key 元素存在,會把Value對象覆蓋到

11、原有 Value 上,并返回舊的 Value 對象刪除方法:Objectremove(K key)從集合中刪除 key 和 value 對象根據給定的Key 對象,去 Map 集合中刪除相同的Key,以及 Key 所對應的Value,并返回被刪除的 Value 對象。 如果 Map 集合中沒有存在指定的 Key 元素,則刪除不成功,返回 null修改方法:put(K key,V value)獲取方法:Objectget(K key) 根據key 獲取 Map 集合中的對應 key 的 value 值根據給定的 key 去 Map 集合中獲取對應 Key 的 Value 元素,如果 Map 集合

12、中沒有指定的 Key 存在,則返回 null其它方法:containsKey(K key)根據給定的 Key 元素,判斷集合是否有存在存在Key 元素則返回 truecontainsValue(V value) 根據給定的 value 元素,判斷集合是否有存在案例:Map 集合的簡單使用Map 集合使用時的特點:是利用 Key 來操作集合中的所的數據的9、Map 集合方法介紹9.1Map 集合:keySet()方法Map 集合中Key 和 Value 是使列集合。雙列集合中包含了兩個單列集合思考:既然是兩個單列集合了,那么能不能獲取到其中一個單列集合呢?可以。 Key 元素時使用一個單列集合,

13、Value 元素時使用另一個單列集合問題:Key 元素在時應該使用哪一個集合作為呢?思考:Map 集合中的 Key 元素特點?Map 集合中的 Key 不能有重復值結論:Map 集合中的 Key 元素的使用 Set 集合獲取 Map 集合中的所有的 Key 元素對象:案例:使用 keySet()獲取 Map 集合中所有的 Key 元素注意:Map 集合本身不具備 foreach 遍歷方式。原因:沒有實現 Iterable 接口Map 集合本身不能直接進行遍歷(只能獲取 Map 集合中的單列集合,遍歷單列集合)9.2Map 集合:entrySet()方法entrySet 方法:用來獲取 Map

14、集合中所的關系關系:key-value 的對應關系 (其實就是一對 Key-Value)關系類型:Mntry(Entry 中的就是 Key-Value)案例:Map 集合中的 entrySet 方法9.3Map 集合:values()方法values()方法: 用來獲取Map 集合中的所有的 value 元素案例:Map 集合的 values()方法小結:課后作業(yè)前言作業(yè):1, 整理當天講解的知識點(按著重點去整理)2, 把課堂上所有的代碼全部練遍(學習到編碼的后,自己書寫)提示:建議先練習重點知識點的代碼1、閱讀以下代碼,并給出正確(B)A、執(zhí)行完后,list 大小為 4B、程序運行報錯C、執(zhí)行完后,list 大小為 3D、執(zhí)行完后,list 大小為 52、閱讀以下程序,根據需求在空置補全代碼需求 1:pr方法中的參數只能是 List 集合,而 List 集合中只能的子類對象填補位置 1:List填補位置 2:? extends需求 2:pr方法中的參數可以是 List 集合也可以是 Set 集合,而集合中的對象卻只能是 Student 或填補位置 1:Collection對象填補位置 2:? super Student3、統(tǒng)計一個字符串中每個字符的出現次數。提示:使用 map 集合完成,字符串中的字符作為 map 集合的 k

溫馨提示

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

評論

0/150

提交評論