




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java集合框架的知識總結(jié)說明:先從整體介紹了集合框架包含的接口和類,然后總結(jié)了集合框架中的一些基本知識和關(guān)鍵點,并結(jié)合實例進(jìn)行簡單分析。1、綜述所有集合類都位于javautil包下。集合中只能保存對象(保存對象的引用變量)。(數(shù)組既可以保存基本類型的數(shù)據(jù)也可以保存對象)。當(dāng)我們把一個對象放入集合中后,系統(tǒng)會把所有集合元素都當(dāng)成類的實例進(jìn)行處理。從以后,這種狀態(tài)得到了改進(jìn):可以使用泛型來限制集合里元素的類型,并讓集合記住所有集合元素的類型(參見具體泛型的內(nèi)容)。的集合類主要由兩個接口派生而出:和,和是集合框架的根接口,這兩個接口又包含了一些接口或?qū)崿F(xiàn)類。LEnunnSetVeclor5oQue
2、ue4SortodSe!4ColfectioriiyjfPriariQusuankedUi無序叢合元57StackTroeSol;UnkedHashS&t:一和接口是接口派生的兩個子接口,是提供的隊列實現(xiàn),類似WeakHashMapEnumMapUnkedHashMap-Sort&dMapdentityHa$hMap;士”;:TreeMapHahtsbleMap實現(xiàn)類用于保存具有映射關(guān)系的數(shù)據(jù)(key-value)。Set、List和Map可以看做集合的三大類。List集合是有序集合,集合中的元素可以重復(fù),訪問集合中的元素可以根據(jù)元素的索引來訪問。Set集合是無序集合,集合中的元素不可以重復(fù),
3、訪問集合中的元素只能根據(jù)元素本身來訪問(也是不能集合里元素不允許重復(fù)的原因)。Map集合中保存Key-value對形式的元素,訪問時只能根據(jù)每項元素的key來訪問其value。對于Set、List和Map三種集合,最常用的實現(xiàn)類分別是HashSet、ArrayList和HashMap三個實現(xiàn)類。(并發(fā)控制的集合類,以后有空研究下)。2、Collection接口Collection接口是List、Set和Queue接口的父接口,同時可以操作這三個接口。Collection接口定義操作集合元素的具體方法大家可以參考API文檔,這里通過一個例子來說明Collection的添加元素、刪除元素、返回集合
4、中元素的個數(shù)以及清空集合元素的方法。publicclassTestCollectionpublicstaticvoidmain(Stringargs)Collectionc=newArrayList();/添加元素c.add(孫悟空);/雖然集合里不能放基本類型的值,但Java支持自動裝箱c.add(6);System.out.println(c集合的元素個數(shù)為:+c.size();/刪除指定元素c.remove(6);System.out.println(c集合的元素個數(shù)為:+c.size();/判斷是否包含指定字符串System.out.println(c集合的是否包含孫悟空字符串:+c.
5、contains(孫悟空);c.add(輕量級J2EE企業(yè)應(yīng)用實戰(zhàn));System.out.println(c集合的元素:+c);Collectionbooks=newHashSet();books.add(輕量級J2EE企業(yè)應(yīng)用實戰(zhàn));books.add(Struts2權(quán)威指南);System.out.println(c集合是否完全包含books集合?+c.containsAll(books);/用c集合減去books集合里的元素c.removeAll(books);System.out.println(c集合的元素:+c);/刪除c集合里所有元素c.clear();System.out.p
6、rintln(c集合的元素:+c);/books集合里只剩下c集合里也同時包含的元素books.retainAll(c);System.out.println(books集合的兀素:+books);程序輸出結(jié)果:c集合的元素個數(shù)為:2c集合的元素個數(shù)為:1c集合的是否包含孫悟空字符串:truec集合的元素:孫悟空,輕量級J2EE企業(yè)應(yīng)用實戰(zhàn)c集合是否完全包含books集合?falsec集合的元素:孫悟空c集合的元素:books集合的元素:3、兩種遍歷集合的方法Iterator接口和foreach循環(huán)1、Iterator接口Iterator也是Java集合框架的成員,主要用于遍歷(即迭代訪問)C
7、ollection集合中的元素,也稱為迭代器。提供的三種方法:booleanhasNext():返回集合里的下一個元素。Objectnext():返回集合里下一個元素。voidremove。;刪除集合里上一次next方法返回的元素。publicclassTestIteratorpublicstaticvoidmain(Stringargs)/創(chuàng)建一個集合Collectionbooks=newHashSet();books.add(輕量級J2EE企業(yè)應(yīng)用實戰(zhàn));books.add(Struts2權(quán)威指南);books.add(基于J2EE的Ajax寶典);/獲取books集合對應(yīng)的迭代器Iter
8、atorit=books.iterator();while(it.hasNext()/未使用泛型,需要強(qiáng)制轉(zhuǎn)換Stringbook=(String)it.next();System.out.println(book);if(book.equals(Struts2權(quán)威指南)it.remove();/使用Iterator迭代過程中,不可修改集合元素,下面代碼引發(fā)異常/books.remove(book);/對book變量賦值,不會改變集合元素本身book=測試字符串;System.out.println(books);程序運行結(jié)果:Struts2權(quán)威指南基于J2EE的Ajax寶典輕量級J2EE企業(yè)
9、應(yīng)用實戰(zhàn)基于J2EE的Ajax寶典,輕量級J2EE企業(yè)應(yīng)用實戰(zhàn)說明:通過語句book=測試字符串;對迭代變量book進(jìn)行賦值時,當(dāng)我們再次輸出books集合時,集合里的元素沒有任何變化。即當(dāng)使用Iterator對集合元素進(jìn)行迭代時,Iterator并不是把集合元素本身傳給迭代變量,而是把集合元素的值傳給了迭代變量。當(dāng)使用Iterator來訪問Collection集合元素時,只有通過Iterator的remove方法刪除(it.remove。;)上一次next方法返回的集合元素才可以給集合中添加元素(book=測試字符串;)。否則引發(fā)java.util.ConcurrentModificatio
10、nExcption異常。2、使用foreach循環(huán)遍歷集合元素。格式:for(元素類型t元素變量x:遍歷對象A)/程序塊說明:(1)foreach簡化了對數(shù)組和集合的遍歷,如果不希望遍歷整個集合,或者在循環(huán)內(nèi)部需要操作下標(biāo)值就需要使用傳統(tǒng)的for循環(huán)。(2)簡化了編程,提高了代碼的可讀性和安全性(不用怕數(shù)組越界)。(3)foreach一般結(jié)合泛型使用實例應(yīng)用:publicclassTestArraypublicstaticvoidmain(Stringargs)TestArraytest=newTestArray();test.test1();test.listToArray();test.t
11、estArray3();/*foreach語句輸出一維數(shù)組*/publicvoidtest1()/定義并初始化一個數(shù)組intarr=2,3,1;System.out.println(1排序前的一維數(shù)組);for(intx:arr)System.out.println(x);/逐個輸出數(shù)組元素的值/對數(shù)組排序Arrays.sort(arr);/利用java新特性foreach循環(huán)輸出數(shù)組System.out.println(1排序后的一維數(shù)組);for(intx:arr)System.out.println(x);/逐個輸出數(shù)組元素的值/*集合轉(zhuǎn)換為一維數(shù)組*/publicvoidlistToA
12、rray()/創(chuàng)建List并添加元素Listlist=newArrayList();list.add(1);list.add(3);list.add(4);/利用froeach語句輸出集合元素System.out.println(2froeach語句輸出集合元素);for(Stringx:list)System.out.println(x);/將ArrayList轉(zhuǎn)換為數(shù)組Objects=list.toArray();/利用froeach語句輸出集合元素System.out.println(2froeach語句輸出集合轉(zhuǎn)換而來的數(shù)組元素);for(Objectx:s)System.out.println(x.toString();/逐個輸出數(shù)組元素的值/*foreach輸出二維數(shù)組測試*/publicvoidtestArray2()intarr2=4,3,1,2;System.out.println(3foreach輸出二維數(shù)組測試);for(intx:arr2)for(inte:x)System.out.println(e);/逐個輸出數(shù)組元素的值/*foreach輸出三維數(shù)組*/publicvoidtestArray3()8intarr=1,2,3,4,5,6
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年安徽蚌埠固鎮(zhèn)縣檔案展示館志愿講解員招聘3人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽滁州市定遠(yuǎn)縣總醫(yī)院招聘社會化用人167人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽滁州鳳陽縣部分事業(yè)單位第二次招聘54人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽淮南毛集實驗區(qū)管理委員會招聘政府工作人員25人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽亳州市譙城區(qū)事業(yè)單位招聘80人筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安慶橫江集團(tuán)限責(zé)任公司第二輪高校畢業(yè)生招聘8人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波慈溪市崇壽鎮(zhèn)81890公共管理服務(wù)平臺招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市文化廣電新聞出版局機(jī)關(guān)招考文員(編外)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年無塵防靜電乳膠手套項目可行性研究報告
- 2024遼寧沈陽水務(wù)集團(tuán)有限公司招聘32人筆試參考題庫附帶答案詳解
- 2023年廊坊市財信投資集團(tuán)有限公司招聘筆試模擬試題及答案解析
- 鐵路職工政治理論應(yīng)知應(yīng)會題庫
- 體育測量與評價-第二章-體育測量與評價的基礎(chǔ)理論課件
- 法律服務(wù)方案(投標(biāo))
- 轉(zhuǎn)移的危險廢物性狀清單
- 四年級公共安全教育全冊教案(海峽教育出版社)
- 工程結(jié)構(gòu)通用規(guī)范
- 《構(gòu)成基礎(chǔ)》PPT課件(190頁P(yáng)PT)
- 四年級道德與法治從中國制造到中國創(chuàng)造
- 2021-2022新教科版四年級科學(xué)下冊全一冊全部課件(共24課)
- 3 棄渣場施工方案
評論
0/150
提交評論