版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
補(bǔ)充:集合容器類(lèi)—List接口及其實(shí)現(xiàn)類(lèi)本章學(xué)習(xí)目標(biāo)重點(diǎn)、難點(diǎn)CompanyLogo重點(diǎn)Set接口及HashSet和TreeSet的使用LinkedList及ArrayList使用HashMap、HashTable、TreeMap的使用難點(diǎn)LinkedList及ArrayList使用HashMap、HashTable的使用學(xué)習(xí)目標(biāo)了解集合類(lèi)的框架理解各類(lèi)接口之間的關(guān)系掌握Set接口及相關(guān)類(lèi)的使用掌握List接口及相關(guān)類(lèi)的使用掌握Map接口及相關(guān)類(lèi)的使用學(xué)習(xí)內(nèi)容集合容器的框架結(jié)構(gòu)相關(guān)接口和類(lèi)之間的關(guān)系Set接口及其實(shí)現(xiàn)類(lèi)的使用List接口及其實(shí)現(xiàn)類(lèi)的使用Map接口及其實(shí)現(xiàn)類(lèi)的使用2本次課學(xué)習(xí)內(nèi)容及目標(biāo)了解List接口的相關(guān)方法掌握List接口實(shí)現(xiàn)類(lèi)的使用LinkedListArrayList了解Vector使用了解Stack使用3一、List接口Collection接口的子接口,繼承了其方法其元素以線(xiàn)性方式存儲(chǔ)。特點(diǎn):元素可重復(fù)元素有序可以對(duì)元素的位置精確控制實(shí)現(xiàn)類(lèi)ArrayListLinkedListVectorStack4List接口常用方法添加元素booleanadd(Ee)向列表的尾部添加指定的元素voidadd(intindex,Eelement)
在列表的指定位置插入指定元素booleanaddAll(Collectionc)添加指定collection中的所有元素到此列表的結(jié)尾
booleanaddAll(intindex,Collectionc)將指定collection中的所有元素都插入到列表中的指定位置5List接口常用方法設(shè)置元素Eset(intindex,Eelement)
用指定元素替換列表中指定位置的元素。獲取元素Eget(intindex)
返回列表中指定位置的元素。intindexOf(Objecto)
返回此列表中第一次出現(xiàn)的指定元素的索引,否則返回-1
intlastIndexOf(Objecto)
返回此列表中最后出現(xiàn)的指定元素的索引,否則返回-1。List<E>subList(intfromIndex,inttoIndex)返回列表中指定的fromIndex(包括)和toIndex(不包括)之間的部分視圖。6List接口常用方法移除元素Eremove(intindex)
移除列表中指定位置的元素
booleanremove(Objecto)
從此列表中移除第一次出現(xiàn)的指定元素(如果存在)
booleanremoveAll(Collectionc)從列表中移除指定collection中包含的其所有元素voidclear()從列表中移除所有元素7List接口常用方法相關(guān)判斷方法booleancontains(Objecto)
如果列表包含指定的元素,則返回true
booleancontainsAll(Collectionc)如果列表包含指定collection的所有元素,則返回true
booleanequals(Objecto)比較指定的對(duì)象與列表是否相等booleanisEmpty()如果列表不包含元素,則返回true8List示例Listlist=newArrayList();//聲明一個(gè)列表list.add(newInteger(3));//加入列表list.add(newInteger(4));list.add(newInteger(3));list.add(newInteger(2));for(inti=0;i<list.size();i++)System.out.println(list.get(i)+””);//get方法返回集合中的對(duì)象3432Iteratorit=list.iterator();//使用迭代器獲取元素while(it.hasNext()){System.out.println(it.next());}//為列表排序Collections.sort(list);for(inti=0;i<list.size();i++)System.out.println(list.get(i)+””);9二、ArrayList介紹
ArrayList就是傳說(shuō)中的動(dòng)態(tài)數(shù)組,內(nèi)部封裝了一個(gè)Object類(lèi)型的數(shù)組特點(diǎn):動(dòng)態(tài)的增加和減少元素靈活的設(shè)置數(shù)組的大小與數(shù)組相比,性能稍差10ArrayList常用方法新增方法VoidensureCapacity(int
minCapacity)
如有必要,增加此ArrayList實(shí)例的容量,以確保它至少能夠容納最小容量參數(shù)所指定的元素?cái)?shù)。voidtrimToSize()將此ArrayList實(shí)例的容量調(diào)整為列表的當(dāng)前大小。voidremoveRange(int
fromIndex,int
toIndex)移除列表中索引在fromIndex(包括)和toIndex(不包括)之間的所有元素。11課堂實(shí)踐1—ArrayList使用編寫(xiě)測(cè)試程序,測(cè)試ArrayList的各個(gè)方法,理解方法的功能,掌握方法的使用。通過(guò)測(cè)試程序,總結(jié)ArrayList的特點(diǎn)。12三、LinkedList介紹實(shí)現(xiàn)List接口,基于雙向循環(huán)鏈表結(jié)構(gòu)13LinkedList常用方法添加元素voidaddFirst(E
e)
將指定元素插入此列表的開(kāi)頭voidaddLast(E
e)將指定元素添加到此列表的結(jié)尾獲取元素element()獲取但不移除此列表的頭(第一個(gè)元素)
Eget(int
index)返回此列表中指定位置處的元素
EgetFirst()
返回此列表的第一個(gè)元素EgetLast()
返回此列表的最后一個(gè)元素14LinkedList常用方法移除元素Eremove()獲取并移除此列表的頭(第一個(gè)元素)Eremove(int
index)移除此列表中指定位置處的元素
booleanremove(Object
o)
從此列表中移除首次出現(xiàn)的指定元素(如果存在)EremoveFirst()移除并返回此列表的第一個(gè)元素removeLast()
移除并返回此列表的最后一個(gè)元素。15LinkedList例子LinkedListl=newLinkedList();l.add("abc");l.add("efg");l.add("gogo");l.add("error");l.remove(3);//移除第四個(gè)元素
System.out.println(l.get(0));//索引從0開(kāi)始,得到第一個(gè)元素
System.out.println(l.get(1));//得到第二個(gè)元素
System.out.println(l.get(2));//System.out.println(l.get(3));16ArrayList和LinkedList比較ArrayList基于數(shù)組,LinkedList基于鏈表隨機(jī)訪問(wèn)元素,ArrayList優(yōu)于LinkedList增加和刪除元素,LinkedList優(yōu)于ArrayList可用LinkedList實(shí)現(xiàn)棧、隊(duì)列結(jié)構(gòu)結(jié)論:若是隨機(jī)獲取元素值,則用ArrayList若是頻繁添加和刪除元素,則用LinkedList17四、輔助類(lèi)—Collections類(lèi)java.util.Collections提供了一些靜態(tài)方法實(shí)現(xiàn)了基于List集合的一些常用算法voidsort(Listl)//對(duì)List中的元素排序voidshuffle(Listl)
//對(duì)List中的元素進(jìn)行隨機(jī)排列voidreverse(Listl)
//對(duì)List中的元素進(jìn)行逆序排列voidfill(Listl,Objecto)
//用一個(gè)特定對(duì)象重寫(xiě)整個(gè)Listvoidcopy(Listdest,Listsrc)
//將源內(nèi)容拷貝到目的intbinarySearch(Listl,Objecto)
//對(duì)順序的List采用折半查找的方法查找特定對(duì)象18課堂實(shí)踐2創(chuàng)建一些商品類(lèi),如圖書(shū)類(lèi)、食品類(lèi)、日用品類(lèi)等實(shí)體類(lèi)。創(chuàng)建業(yè)務(wù)類(lèi),構(gòu)建容器對(duì)象,將這些商品放入容器,并對(duì)容器中的商品對(duì)象進(jìn)行增、刪、改、查操作。對(duì)容器中的數(shù)據(jù)每次操作后,都顯示容器中的元素,以作對(duì)比。創(chuàng)建測(cè)試類(lèi),測(cè)試業(yè)務(wù)類(lèi)的相關(guān)功能。19五、向量類(lèi)VectorVector類(lèi)以實(shí)現(xiàn)類(lèi)似動(dòng)態(tài)數(shù)組的功能使用了synchronized方法(線(xiàn)程安全)所以性能上比ArrayList要差
向量類(lèi)提供了三種構(gòu)造方法:publicvector()publicvector(intinitialcapacity,intcapacityIncrement)publicvector(intinitialcapacity)20Vector例子importjava.util.*;classVectorTest{ publicstaticvoidmain(Stringargs[]) { Vectorvec=newVector(); Datedate=newDate(); vec.add(newInteger(1)); vec.add(newFloat(3.45f)); vec.add(newDouble(1.2)); vec.add(date); System.out.println("Size:"+vec.size()); Integern1=(Integer)vec.get(0); System.out.println("向量第1個(gè)元素:"+Value()); Floatn2=(Float)vec.get(1); System.out.println("向量第2個(gè)元素:"+n2.floatValue()); Doublen3=(Double)vec.get(2); System.out.println("向量第3個(gè)元素:"+n3.doubleValue()); Daten4=(Date)vec.lastElement(); System.out.println("向量第4個(gè)元素:"+n4.toString()); if(vec.contains(date)) System.out.println("存在date"); }}21Stack類(lèi)Stack繼承自Vector,實(shí)現(xiàn)一個(gè)后進(jìn)先出的堆棧。Stack提供5個(gè)額外的方法使得Vector得以被當(dāng)作堆棧使用。基本的push和pop方法,還有peek方法得到棧頂?shù)脑兀琫mpty方法測(cè)試堆棧是否為空,se
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水(油)壓機(jī)鍛造工班組協(xié)作測(cè)試考核試卷含答案
- 2026年健康中國(guó)戰(zhàn)略實(shí)施與評(píng)估聯(lián)絡(luò)員面試題及答案
- 橋梁工程深基坑開(kāi)挖專(zhuān)項(xiàng)施工方案
- 彩鋼板圍擋搭設(shè)工程施工設(shè)計(jì)方案
- 項(xiàng)目運(yùn)營(yíng)團(tuán)隊(duì)管理計(jì)劃方案
- 世界水日活動(dòng)策劃方案
- 政教處校園文化藝術(shù)節(jié)活動(dòng)方案
- 環(huán)境風(fēng)險(xiǎn)評(píng)估報(bào)告編制協(xié)議
- 智能制造項(xiàng)目落地實(shí)施方案
- O2O配送配送費(fèi)用協(xié)議
- T/CAPE 11005-2023光伏電站光伏組件清洗技術(shù)規(guī)范
- 水電詞匯手冊(cè)漢英版+英漢版
- 應(yīng)用化工技術(shù)職業(yè)生涯規(guī)劃書(shū)
- 水表過(guò)戶(hù)申請(qǐng)書(shū)范本
- 宏天BPMX3.3業(yè)務(wù)流程管理平臺(tái)操作手冊(cè)
- 桶裝水配送承包運(yùn)輸協(xié)議書(shū)范本(2024版)
- 質(zhì)疑函授權(quán)委托書(shū)
- 低空經(jīng)濟(jì)產(chǎn)業(yè)園建設(shè)項(xiàng)目可行性研究報(bào)告
- 中考數(shù)學(xué)講座中考數(shù)學(xué)解答技巧基礎(chǔ)復(fù)習(xí)課件
- APQP流程管理-各階段輸出資料一覽表
- 全口義齒人工牙的選擇與排列 28-全口義齒人工牙的選擇與排列(本科終稿)
評(píng)論
0/150
提交評(píng)論