版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java數(shù)據(jù)結(jié)構(gòu)(1),演示者:孫家澤,Java數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu):具有一個或多個特定關(guān)系的數(shù)據(jù)元素的集合。集合:我們研究對象的全部。如果節(jié)目數(shù)據(jù)結(jié)構(gòu)算法語言能夠提供通用的數(shù)據(jù)結(jié)構(gòu)和算法,并提供擴展接口,那么編程效率將大大提高。Java語言通過Java集合框架(Java Collection Framework)實現(xiàn)了這些目標。Java數(shù)據(jù)結(jié)構(gòu)使Java編程不必從頭開始構(gòu)建所需的數(shù)據(jù)結(jié)構(gòu)。軟件包Java.util中的Java集合框架是用于創(chuàng)建和操作廣泛使用的重要數(shù)據(jù)結(jié)構(gòu)和算法的集成體系結(jié)構(gòu),只需選擇Java集合框架中最合適的類即可輕松地創(chuàng)建和操作所需的數(shù)據(jù)結(jié)構(gòu)。學習要點:學習使用Java集合框
2、架介面集合、Map、Set、List、Iterator和Enumeration介面array layles集合框架1.3集合框架對編程有什么好處,是集合的表示;集合的特征(3個)、1.2集合框架(1個)是什么,集合框架是為表示和操作集合而規(guī)定的統(tǒng)一標準體系結(jié)構(gòu)。所有集合框架都包含三個茄子主要內(nèi)容:一個外部接口。2介面實現(xiàn)集合運算的3對算法。1.2什么是集合框架(2),介面:表示集合的抽象數(shù)據(jù)類型。界面提供了單獨操作集合中顯示的內(nèi)容的可能性。實現(xiàn):集合框架中接口的具體實現(xiàn)。實際上,它們是可重復使用的數(shù)據(jù)結(jié)構(gòu)。算法:在實現(xiàn)集合框架界面的對象中執(zhí)行有用計算(如查找、排序等)的方法。這些算法通常是多態(tài)
3、的。這是因為在多個類中實現(xiàn)同一接口時,同一方法的行為可能不同。事實上,算法是可重復使用的函數(shù)。1.3集合框架對編程有什么好處,減少了編程的辛苦。提高節(jié)目速度和質(zhì)量。減少學習、使用和設(shè)計新API的辛苦。集合框架鼓勵軟件重用。1.4 Java集合框架的歷史(1),許多高級語言的數(shù)組實際上是集合(如c、c、pascal和Java)的簡單實現(xiàn)。數(shù)組存儲相同類型的多個值,創(chuàng)建數(shù)組時長度是固定的,設(shè)置后不能更改。1.4 Java集合框架的記錄(2),在Java 2之前沒有完整的集合框架。設(shè)計java1集裝箱類庫(如Vector、stack和hashtable)的一個重要錯誤是沒有對容器進行排序。例如,如果
4、要按字典順序排列vector容器中的對象,則必須直接實現(xiàn)。1.4 Java集合框架的記錄(3),在Java2中重新設(shè)計集合框架,以提供設(shè)計良好的介面和類集。Java2以面向?qū)ο蟮脑O(shè)計封裝了常用的數(shù)據(jù)結(jié)構(gòu)和算法,極大地減少了程序員的編程負擔。程序員還可以根據(jù)牙齒集合框架定義更高級別的數(shù)據(jù)抽象(如堆棧、隊列和線程安全),以滿足自己的需要。通過將泛型、For-Each循環(huán)、自動打包/卸載等功能引入Java集合框架的記錄(4)、j2se1.5,增強集合框架的功能。1.5 Java集合幀映射(1)、Java 2集合幀映射、1.5 Java集合幀映射(2)、集合介面:表示徐璐其他集合類型的六個介面(用短虛
5、線表示)和集合幀的基本抽象類??梢詳U展到五個抽象類(用長虛線表示)自定義集合類。實施類:8個實施類(以實線表示)、接口的特定實現(xiàn)、1.5 Java集合框架(3)、Java 2簡化集合框架、2集合介面和實施類、2.1集合介面和集合接口是構(gòu)成集合框架的基礎(chǔ)。聲明所有集合類將具有的核心方法。添加元素、清除元素、確認元素的存在、返回迭代接口、將集合轉(zhuǎn)換為數(shù)組集合的大小、包含Collection的主要方法1、Collection的主要方法2、Collection的主要方法3,2.2迭代接口,通常希望按順序訪問類集中的元素。到目前為止,解決此問題最簡單的方法是使用Iterator。Iterator是實現(xiàn)或
6、實現(xiàn)iterator或ListIterator接口的對象。Iterator可以遍歷類集中的元素,以導入或刪除元素。啟動器可以擴展啟動器以允許和修改雙向橫向列表。2.2 .1Iterator接口的方法,2.2 .2ListIterator接口的方法,2.3.1 List介面,集合介面繼承表示可通過列表中該位置插入的有序集合(線性表)元素,實現(xiàn)2.3.2 List接口的類(1),以及這種類型的轉(zhuǎn)換不安全。,渡邊杏使用一般化代碼(2),ArrayList a=new ArrayList();a . add(new Integer(1);a . add(new Integer(2);for(Itera
7、tor I=a . Iterator();I . has next();)inti1=(integer) i.next()。int value();使用廣義代碼(3),ArrayList a=new ArrayList();a . add(new Integer(1);a . add(new Integer(2);for(Iterator I=a . Iterator();I . has next();)int i1=i.next()。int value();思考:您可以使用JDK5.0的新功能進一步改進上述代碼。ArrayList示例1,import Java . util . ArrayL
8、ist;publicclassmainclasspublicstaticvoidmain(string args)ArrayList al=new ArrayList();system . out . print ln( initial size ofal 3360 al . size();al . add( c );al . add( a );al . add( e );al . add(B);al . add(D);al . add(F);Al.add(1,A2);system . out . print ln(sizeofalafteradditions 3360 al . size()
9、;System.out.println(內(nèi)容關(guān)閉3360 al);蛋。remove(f);al . remove(2);system . out . print ln(sizeofalafterdeletions 3360 al . size();System.out.println(內(nèi)容關(guān)閉3360 al);initial size ofal :0 sizeofalafteradditions :7 contents ofal : c,a2,a,e,b,d,fsizeofalafterdeletionsimport Java . util . listiterator;publicclass
10、mainclasspublicstaticvoidmain(string args)ArrayList al=new ArrayList();al . add(C);al . add(A);al . add(E);al . add(B);al . add(D);al . add(F);system . out . print(originalcontentsofal :);ITER ator itr=al . iterator();while(itr . has next()string element=itr . next();System.out.print(元素);system . ou
11、t . print ln();listiterator litr=al . listiterator();while(litr . has next()string element=litr . next();Litr.set(元素);/now,displaythelistbackwards . system . out . print(modifiedlistbackwards 3360);while(litr . has previous()string element=litr . previous();System.out.print(元素);originalcontentsofal
12、: caebdfmodifiedlistbackwards : f d b e a c,ArrayList示例3,import Java . util . ArrayList;publicclassmainclasspublicstaticvoidmain(string args)ArrayList al=new ArrayList();al . add(1);al . add(2);al . add(3);al . add(4);System.out.println(內(nèi)容關(guān)閉3360 al);integeria=new integeral . size();ia=al . toarray(i
13、a);intsum=0;for(inti 3360 ia)sum=I;system . out . print ln(sumis 3360 sum);提供、contents ofal :1、2,3,4s List 336010、2.3.2.2 LinkedList類、LinkedList類擴展AbstractSequentialList和鏈列表數(shù)據(jù)結(jié)構(gòu),并添加幾個處理列表兩端元素的茄子方法。下面的兩個茄子構(gòu)造函數(shù)linked list()linked list(collectionc)使用addFirst()方法向列標題添加元素:使用AddLast()方法可以將Object getFirst(
14、)、objectgetlast()、linkedlist示例1和importjava.util.LinkedList元素添加到列表的末尾ll . add(“b”);ll . add(C);ll . add(D);ll . add(E);ll . add(F);ll . add last(Z);ll . addfirst(A);Ll.add(1,A2);system . out . print ln(originalcontentsofll 3360 ll);ll . remove(F);ll . remove(2);system . out . print ln(contentsofllaft
15、erdeletion : ll);ll . remove first();ll . remove last();system . out . print ln(llafterdeletingfirstandlast : ll);string val=ll . get(2);Ll.set(2,val Changed);system . out . print ln(llafter change : ll);originalcontentsofll :a、a2、b、c、d、E、f、zcontentsoflafterdeletion 3360a、a2、c、d、zcontentsoflafterdeletion 3360aVector創(chuàng)建的Iterator與ArrayList創(chuàng)建的Iterator具有相同的接口,但Vector已同步,因此,如果創(chuàng)建了一個Iterator并正在使用它,另一個線程將更改Vector的狀態(tài)(例如添加或刪除某些元素),import Java . util . vector;publicclassmainclasspublicstaticvoidmain(string args)vectorv=new vector();for(inti=0;I=0;I-)sys
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第30課《系統(tǒng)安全需升級》測試題2025-2026學年人教版八年級信息科技全一冊
- 《GB-T 24438.3-2012自然災害災情統(tǒng)計 第3部分:分層隨機抽樣統(tǒng)計方法》專題研究報告
- 《GBT 21595-2008 危險品便攜式罐體撞擊試驗方法》專題研究報告
- 《GBT 14993-2008轉(zhuǎn)動部件用高溫合金熱軋棒材》專題研究報告
- 《GB 4706.85-2008家用和類似用途電器的安全 紫外線和紅外線輻射皮膚器具的特殊要求》專題研究報告
- 道路危險運輸安全培訓課件
- 道路交通安全培訓素材課件
- 道路交通培訓課件
- 2025-2026年蘇教版八年級語文上冊期末題庫試題附答案
- 迪奧項鏈介紹
- 《中國臨床腫瘤學會(csco)小細胞肺癌診療指南(2025版)》
- 2025至2030中國半導體AMC過濾器行業(yè)競爭優(yōu)勢及前景趨勢預判報告
- 鄉(xiāng)鎮(zhèn)高層滅火救援疏散應急演練方案及流程
- 五恒系統(tǒng)節(jié)能環(huán)保施工技術(shù)規(guī)范與優(yōu)化研究
- 大學期末考試思政題庫及答案
- 師徒結(jié)對活動記錄表-師傅
- have與has的用法微課課件
- 如何做員工考勤管理制度
- 大學形勢政策課件
- 城市供水管道施工重難點分析及改進措施
- 2025年南京市事業(yè)單位教師招聘體育學科專業(yè)知識歷年真題解析試卷
評論
0/150
提交評論