版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
--List集合1.集合的概念以及API的使用2.Collection接口3.
迭代器Iterator接口4.List接口5.實(shí)現(xiàn)類ArrayList和LinkedList的使用集合的概念集合:JavaAPI所提供的一系列類的實(shí)例,可以用于動(dòng)態(tài)存放多個(gè)對(duì)象。JDK所提供的集合API位于java.util包內(nèi)。集合框架圖JavaCollectionsFramework圖如下JDK所提供的集合API位于java.util包內(nèi)。集合框架圖(簡(jiǎn)單)集合框架圖(詳細(xì))Collection接口Collection接口中定義了一些集合常用方法方法說明int
size();
返回此collection中的元素?cái)?shù)boolean
isEmpty();判斷此collection中是否包含元素。boolean
contains(Object
obj);判斷此collection是否包含指定的元素。boolean
add(Object
element);
向此collection中添加元素。boolean
remove(Object
element);
從此collection中移除指定的元素。voidclear();
移除些collection中所有的元素。Iterator
iterator();
返回在此collection的元素上進(jìn)行迭代的迭代器Object[]
toArray();把此collection轉(zhuǎn)成數(shù)組。集合中泛型的使用JDK1.4以前:裝入集合的數(shù)據(jù)都會(huì)被當(dāng)作Object對(duì)象來存放,從而失去了自己的實(shí)際類型。從集合中取出元素時(shí),需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。效率低,容易產(chǎn)生錯(cuò)誤。JDK5.0之后,可以用泛型來解決這個(gè)問題在定義一個(gè)集合時(shí)就指定集合存儲(chǔ)的對(duì)象的數(shù)據(jù)類型如:Collection<String>
coll
=
new
ArrayList<String>();從集合中取出元素時(shí),無需轉(zhuǎn)型了。如:String
str1
=
it.next();集合中泛型的優(yōu)點(diǎn)優(yōu)點(diǎn):簡(jiǎn)化集合的使用增強(qiáng)代碼的可讀性和穩(wěn)定性意義:用于保護(hù)存入集合中元素的數(shù)據(jù)類型Iterator接口所有實(shí)現(xiàn)了Collection接口的集合類都有一個(gè)iterator()方法用以返回一個(gè)實(shí)現(xiàn)了Iterator接口的對(duì)象。Iteratorit=coll.iterator();Iterator迭代器的工作原理Iterator是專門的迭代輸出接口。所謂的迭代輸出就是將元素進(jìn)行判斷,判斷是否有內(nèi)容,如果有內(nèi)容則把內(nèi)容取出。Iterator對(duì)象稱作迭代器,用以方便的實(shí)現(xiàn)對(duì)集合內(nèi)元素的遍歷操作。Iterator迭代器的使用方法Iterator接口中定義了如下方法:booleanhasNext();//判斷游標(biāo)右邊是否有元素Objectnext();//返回游標(biāo)右邊的元素并將游標(biāo)移動(dòng)到下一個(gè)位置voidremove();//刪除游標(biāo)左面的元素元素1元素2元素3元素4元素5游標(biāo)用forEach遍歷集合中的元素凡是能用Iterator迭代的集合都可以用JDK5.0中增強(qiáng)的for循環(huán)來更簡(jiǎn)便的遍歷。List接口List接口是Collection接口的子接口實(shí)現(xiàn)List接口的集合類中的元素是有序的,且允許重復(fù)。List集合中的元素都對(duì)應(yīng)一個(gè)整數(shù)型的序號(hào)記載其在集合中的位置,可以根據(jù)序號(hào)存取集合中的元素。JDK
API所提供的List集合類常用的有ArrayListLinkedListVector(并不常用)List接口結(jié)構(gòu)圖List接口常用方法List接口比Collection接口中新增的幾個(gè)實(shí)用方法:public
Objectget(intindex);返回列表中的元素?cái)?shù)publicObjectadd(intindex,Objectelement);在列表的指定位置插入指定元素.將當(dāng)前處于該位置的元素(如果有的話)和所有后續(xù)元素向右移動(dòng)publicObjectset(int
index,Object
element);用指定元素替換列表中指定位置的元素publicObjectremove(int
index);移除列表中指定位置的元素publicListIteratorlistIterator()返回此列表元素的列表迭代器實(shí)現(xiàn)類——ArrayListArrayList是使用數(shù)組結(jié)構(gòu)實(shí)現(xiàn)的List集合。優(yōu)點(diǎn):對(duì)于使用索引取出元素有較好的效率它使用索引來快速定位對(duì)象缺點(diǎn):元素做刪除或插入速度較慢因?yàn)槭褂昧藬?shù)組,需要移動(dòng)后面的元素以調(diào)整索引順序。實(shí)現(xiàn)類——LinkedListLinkedList是使用雙向鏈表實(shí)現(xiàn)的集合。LinkedList新增了一些插入、刪除的方法。優(yōu)點(diǎn):對(duì)頻繁的插入或刪除元素有較好的效率適合實(shí)現(xiàn)棧(Stack)和隊(duì)列(Queue)棧(Stack)和隊(duì)列(Queue)棧(Stack)的存儲(chǔ)特點(diǎn):LIFO后進(jìn)先出(lastinfirstout)隊(duì)列(Queue)的存儲(chǔ)特點(diǎn):FIFO先進(jìn)先出(firstinfirstout)向量Vector(了解)舊版的ArrayList,它大多數(shù)操作跟ArrayList相同,區(qū)別之處在于Vector是線程同步的。它有一枚舉方式可以類似Iterator進(jìn)行遍歷訪問:importjava.util.Vector;importjava.util.Enumeration;publicclassVectorTest{ publicstaticvoidmain(String[]args){ Vector<String>v=newVector<String>(); v.add("向量"); v.add("123"); v.add("abc"); Enumeration<String>e=v.elements(); while(e.hasMoreElements()){ System.out.println("---"+e.nextElement()); } }}總結(jié)Collection接口的使用List接口中的常用方法ArrayList和LinkedList實(shí)現(xiàn)類的使用預(yù)習(xí)與作業(yè)預(yù)習(xí)內(nèi)容Set集合作業(yè)1.創(chuàng)建一個(gè)User類,用于name,password兩個(gè)成員變量。在主函數(shù)中使用for循環(huán)創(chuàng)建10個(gè)User對(duì)象,并對(duì)成員變量賦值,在for循環(huán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋出租合同范本
- 2023年山東省口腔醫(yī)院(山東大學(xué)口腔醫(yī)院)招聘工作人員考試真題
- 2023年青海省博物館招聘講解員等公共服務(wù)崗位考試真題
- 2023年普洱市人民醫(yī)院鎮(zhèn)沅院區(qū)(鎮(zhèn)沅縣中醫(yī)醫(yī)院)招錄考試真題
- 贈(zèng)與合同范本夫妻
- 2023年河北秦皇島北戴河新區(qū)拓新人力資源服務(wù)有限公司招聘工作人員考試真題
- 2023年福建龍巖新羅西陂社區(qū)衛(wèi)生服務(wù)中心招聘考試真題
- 2023年大連市沙河口區(qū)教育系統(tǒng)招聘教師考試真題
- 外委加工合同范本
- 微生物學(xué)檢驗(yàn)技術(shù) 課件 33-0綜合技能訓(xùn)練:實(shí)驗(yàn)室生物安全與質(zhì)量控制
- 急腹癥病人護(hù)理講解
- 2024年浙江省中考?xì)v史真題(原卷版)
- 早產(chǎn)兒和低出生體重兒袋鼠式護(hù)理臨床實(shí)踐指南(2024)解讀
- 2024至2030年中國(guó)補(bǔ)腎市場(chǎng)銷售前景模及消費(fèi)需求潛力分析報(bào)告
- 2024-2030年中國(guó)水循環(huán)利用行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 2024年秋新人教版七年級(jí)上冊(cè)數(shù)學(xué)教學(xué)課件 第三章 代數(shù)式 數(shù)學(xué)活動(dòng)
- 2024小學(xué)道德與法治新教材培訓(xùn):教材邏輯分析與教學(xué)要點(diǎn)梳理
- 百果園品牌特許經(jīng)營(yíng)合同范本(2024年版)
- 中國(guó)古代刑罰
- 廣東省佛山市2023屆普通高中教學(xué)質(zhì)量檢測(cè)(二)化學(xué)試題
- 奇安信1+X考試附有答案
評(píng)論
0/150
提交評(píng)論