




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第05章集合和泛型本章內(nèi)容1Java 集合2泛型講解時間:40分鐘實(shí)踐時間:20分鐘1 Java 集合1.1 集合框架Employee emp1 = new Employee();Employee emp2 = new Employee();.Employee empArray = new Employee10;/初始化數(shù)組大小公司的員工數(shù)量在不斷的變化 需要同時存儲員工編號和員工對象,且根據(jù)編號查找對應(yīng)的員工對象使用數(shù)組可否解決以上需求?使用集合可以解決復(fù)雜的數(shù)據(jù)存儲問題1.1 集合框架的概念與結(jié)構(gòu)n Java中的集合框架是指一系列存儲數(shù)據(jù)的接口和類,這些類和接口 都位于java.util包
2、中n 使用集合框架可以解決復(fù)雜的數(shù)據(jù)存儲問題,Java中內(nèi)置了豐富的 集合框架1.2 List接口Collection接口List接口存儲順序有序可以保存重復(fù)元素實(shí)現(xiàn)n List接口的定義1.2 List接口的定義 ArrayList用法類似于數(shù)組,且其容量可按需要動態(tài)調(diào)整,亦被稱為動態(tài)數(shù)組List接口的常用子類有:ArrayList和Vectorn List接口的常用方法List list = new ArrayList()/list接口指向?qū)崿F(xiàn)類的實(shí)例Student stu = new Student();/實(shí)例化Studentlist.add(java oop); list.add(1)
3、;/自動裝箱將int類型自動包裝成Integerlist.add(jsp); list.add(Stu);/添加Student對象list.remove(stu);/刪除指定的內(nèi)容list.remove(1);/ 刪除指定位置的元素for(int i=0;ilist.size();i+) System.out.println(list.get(i);/根據(jù)索引獲取指定位置的元素 list.removeAll(list);/刪除集合中的所有元素 System.out.println(list.size();/獲取集合中元素的個數(shù)1.2 List接口的定義返回類型方法名稱描述voidaddFirs
4、t()將指定元素插入此列表的開頭voidaddLast()將指定元素添加到此列表的結(jié)尾ObjectremoveFirst()移除并返回此列表的第一個元素ObjectremoveLast()移除并返回此列表的最后一個元素booleanadd(Object o)將指定的元素添加到列表中n LinkedList表示鏈表的操作類,它同時實(shí)現(xiàn)了List和Queue接口。n LinkedList中的存放元素按照先進(jìn)先出方式排序,LinkedList除實(shí)現(xiàn)上表 中的方法外,還提供如下方法 :1.2 List接口的定義import java.util.*;public class LinkedListDemo
5、 public static void main(String args) LinkedList linkedList = new LinkedList();linkedList.add(a);/向鏈表添加數(shù)據(jù)linkedList.add(b);linkedList.add(c);linkedList.addFirst(m);/在鏈表表頭增加數(shù)據(jù)linkedList.addLast(n);/在鏈表表尾增加數(shù)據(jù)System.out.println(linkedList);/輸出鏈表內(nèi)容LinkedList子類實(shí)現(xiàn)了List接口1.2 List接口的定義ArrayListVector當(dāng)元素存儲達(dá)到
6、指定容量時,自動增長為原容量的二分之一當(dāng)元素存儲達(dá)到指定容量時,原容量自動增長一倍非線程安全且性能更高線程安全但性能較低Vector類能夠?qū)崿F(xiàn)可增長的對象數(shù)組;其大小可以根據(jù)需要增大或縮小實(shí)例化Vector: List list = new Vector()/list接口指向?qū)崿F(xiàn)類的實(shí)例n ArrayList和Vector的比較n 常用方法Vector1.3 Set接口Collection接口Set接口存儲順序無序不可以保存重復(fù)元素實(shí)現(xiàn)nSet接口的定義及常用子類1.3 Set接口的定義常用子類n Set接口常用子類:HashSetimport java.util.*;public class
7、 SetDemo public static void main(String args)Set set = new HashSet();set.add(apple);/添加元素set.add(orange);/添加元素set.add(pear);set.add(pear);/重復(fù)元素不能加入set.add(banana); System.out.println(set);返回類型方法描述booleanhashNext()如果有元素可迭代Objectnext()返回迭代的下一個元素n HashSet類中沒有提供根據(jù)集合索引獲取索引對應(yīng)的值的方法,因此遍歷HashSet時需要使用Iterator
8、迭代器n Iterator是對集合進(jìn)行迭代的迭代器,通過迭代器可以對集合進(jìn)行遍 歷。Iterator的主要方法如下:1.3 Set接口的定義常用子類public static void main(String args) Set set = new HashSet(); set.add(apple); set.add(orange); set.add(pear); set.add(pear);/重復(fù)元素不能加入 set.add(banana); Iterator iterator = set.iterator(); while(iterator.hasNext() System.out.pri
9、ntln(iterator.next(); 返回對set 中的元素進(jìn)行迭代的迭代器 返回迭代器的下一個元素 判斷迭代器中是否有元素可迭代 1.3 Set接口的定義常用子類1.4 Map接口Map接口以鍵值對形式存儲數(shù)據(jù)不允許出現(xiàn)重復(fù)鍵元素存儲順序無序n Map接口定義1.4 Map接口定義返回類型方法描述Objectget(Object key)根據(jù)key取得valueObjectput(Obejct k,Object v)向集合中加入元素voidclear()清除Map集合booleanisEmpty()判斷集合是否為空booleancontainsKey(Object object)判斷指
10、定的key是否存在booleancontainsValue(Object value)判斷指定的value是否存在SetkeySet()Map中所有的key的集合Objectremove(Object key)根據(jù)key刪除對應(yīng)的valueCollectionvalues()取出全部的valueintsize()獲得集合的長度nMap接口常用方法如下所示1.4 Map接口的子類n Map接口的常用子類有:HashMap和Hashtable Map map = new HashMap(); map.put(bookName,java oop); map.put(author, john); ma
11、p.put(price, 50);/自動裝箱 map.put(price, 80);/出現(xiàn)重復(fù)的鍵:price map.put(null,nothing);/空鍵 Collection col = map.values();/取出Map中全部的value Iterator iterator = col.iterator(); while(iterator.hasNext() System.out.println(iterator.next(); HashMap允許出現(xiàn)空鍵1.4 Map接口的子類nHashMap不允許出現(xiàn)重復(fù)鍵,但允許出現(xiàn)空鍵和空值 Map map = new Hashtabl
12、e(); map.put(“1”, null);/空值 map.put(null, java oop);/空鍵 Collection col = map.values(); Iterator iterator = col.iterator(); while (iterator.hasNext() System.out.println(iterator.next(); Hashtable不允許出現(xiàn)空鍵和空值1.5 泛型 public static void main(String args) List list = new ArrayList();list.add(java oop);list.
13、add(3);list.add(new Student();list.add(new Book();for(int i=0;ilist.size();i+)/list.get(i)list.get(i)該強(qiáng)制轉(zhuǎn)換成哪種類型?Java中的泛型,是指向list中添加統(tǒng)一類型的數(shù)據(jù)時,不會出現(xiàn)類型轉(zhuǎn)換無法確定的問題。1.5 泛型概述n泛型在建立對象時不指定類中屬性的具體類型,而是在聲明及實(shí)例化對象時由外部指定。泛型可以提高數(shù)據(jù)安全性1.5 泛型應(yīng)用泛型定義泛型類定義泛型對象定義n 泛型的主要原理是聲明類時通過標(biāo)識表示類中某個屬性的類型,或某方法的返回值及參數(shù)類型。此時聲明和實(shí)例化類時只要指定需要的類
14、型即可 n 泛型定義包括泛型類定義和泛型對象定義,其中泛型對象 定義的應(yīng)用最為普遍 1.5 泛型應(yīng)用n 泛型對象定義 類名稱 對象名稱 = new 類名稱();List list = new ArrayList();Student stu1 = new Student();stu1.setStuName(tom);stu1.setAge(20);Student stu2 = new Student();stu2.setStuName(john);stu2.setAge(19);list.add(stu1);list.add(stu2);/list.add(java oop);/不允許將Stri
15、ng類型元素添加至集合中for(int i=0;ilist.size();i+) System.out.print(姓名:+list.get(i).getStuName()+ ); System.out.println(年齡:+list.get(i).getAge(); 統(tǒng)一集合List中元素的數(shù)據(jù)類型是Student類型 實(shí)踐練習(xí)實(shí)踐時間:20分鐘 訓(xùn)練內(nèi)容l 使用HashMap 需求說明l 定義一個字符串,統(tǒng)計(jì)字符串中每個字符的個數(shù)。如“a,d,b,d,a”l 結(jié)果為實(shí)現(xiàn)思路l使用Scanner接收鍵盤輸入的字符串l使用HashMap統(tǒng)計(jì)每個字符的個數(shù),其中key保存字符,value用來記錄字符的數(shù)量實(shí)踐練習(xí)需求說明l使用對象集合完成如下功能l1.員工信息的查看l2.刪除員工實(shí)踐時間:30分鐘實(shí)現(xiàn)思路l創(chuàng)建一個員工對象l包含員工編號,員工姓名,員工性別,員工年齡 屬性l創(chuàng)建一個 員工對象的集合l初始化3條員工記錄(并使用在控制臺循環(huán)打印,顯示員工信息)l在員工集合中刪除一條員工記錄l使用集合中提供的方法刪除員工本章總結(jié)Java中的集合框架包括Collection和Map兩大基本接口;其中List、Set繼承Collection接口 A
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告效果評估監(jiān)測協(xié)議3篇
- 小賣部承包合同范例3篇
- 入伙協(xié)議書格式合同3篇
- 年薪制勞動合同范本3篇
- 保溫板施工監(jiān)控3篇
- 綠色I(xiàn)T與計(jì)算機(jī)硬件的環(huán)保設(shè)計(jì)考核試卷
- 紙質(zhì)寵物用品市場趨勢與消費(fèi)行為研究分析考核試卷
- 服務(wù)標(biāo)準(zhǔn)化與醫(yī)藥研發(fā)服務(wù)考核試卷
- 真空泵在石油化工中的應(yīng)用考核試卷
- 2025年:勞動合同終止的多樣情形解析
- 2024華能四川能源開發(fā)有限公司下屬單位招聘筆試參考題庫附帶答案詳解
- 2025怎樣正確理解全過程人民民主的歷史邏輯、實(shí)踐邏輯與理論邏輯?(答案3份)
- 鋼結(jié)構(gòu)高處作業(yè)安全管理
- JJF 2221-2025導(dǎo)熱系數(shù)瞬態(tài)測定儀校準(zhǔn)規(guī)范
- 華為手機(jī)協(xié)議合同
- 甘肅省隴南市禮縣第六中學(xué)2024-2025學(xué)年八年級下學(xué)期第一次月考數(shù)學(xué)試卷(無答案)
- 公司兩班倒管理制度
- 完整版高中古詩文必背72篇【原文+注音+翻譯】
- 2025年武漢數(shù)學(xué)四調(diào)試題及答案
- 人教版小學(xué)四年級語文下冊2024-2025學(xué)年度第二學(xué)期期中質(zhì)量檢測試卷
- 七年級下冊道德與法治(2025年春)教材變化詳細(xì)解讀
評論
0/150
提交評論