java數據結構_第1頁
java數據結構_第2頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章:緒論1、計ri機科技的w大支w:i、數據結構2、_ -程序=數裾結構+燈法2、數據結構定義是一N研究非數仿計兌的程序設計問題屮計兌機的揀作對象以及它們之間的關系和操作等等的學科。玫據Da:足對位息的-種符弓農示。在計57機科學屮足衍所釘能輸入到il W機中并波計算機稅序處理的符3的總稱。數據元素(I)ata Element)足數裾的堪本中.位.A計算機程序屮通常作為一個體 進行考慮和處理。個數掂兒索"門II若十個數掂項組成。數槲項足數則的4、"J分別的圮小中 數據結構(Data Structure):足相h:之間介/H 種成多種特定關系的數樅元索的集 合。3. 數椐

2、結構主®衍邏糾結構和物理結鉤數鋸之間的相互關系稱為邏拊結構。通常分為叫類堆本結構:集合 結構屮的數裾元敘除ruw r種類#外.別尤其它關系。 線性結構結構中的數裾元秦之間存在一對一的關系。樹型結構結構中的數據元東之m存作一對多的關系。圖狀結構或網狀結構 結構中的數裾元素之叫介7|:多對多的關系。4. 數據結構在計算機中有兩種不M的表示方法:順序存儲結構:川數拋元索在存fi/i器屮的相對位腎來衣¥數裾元索之N的邏輯關 系。鏈式存儲結構:在毎一個數據元素中増加一個存放地址的指針,用此桁針宋表示 數據元索之間的邏樹關系。5、數據對象:坫種數掘類咿元蒺的集介。例:枘數的數據對象是&

3、quot;-3, -2, -1, 0. 1,2, 3, 英文符類制的數據對象B, C. D. E, F.) 敵據類型:在一種祝印設計講言中,變量所具有的數據種類。6.數椐結構的三個方而:7、算法用杣象的W肖描述解決特定問題的辯一步的俠作。程序足il ff機能ffl解和執行的桁令序列。一個構序丈現一個m去。«法和構序的ix:別是訂法的執行是存窮的,而程序的執行吋以是無限的.8、時間復雜度:時間復雜度為o< n2)的二重循環。 ini n=9;for(int i=o;i<cd+)foiXint j=0;j<oj+) SxstexxhOirt4MinW*j);int n=

4、9; toittnt i=O;i<cui+) fortini j=O;j<Uj+>,時間復雜度仍為SysteiruQMt4wi_*j); 二重循環的執行次數為 0(/。n(n +1)2-4.時間復雜度為O<nlog2n)的二盧循環。 int n=8; forttnt i=i;i<=cu*=2) foitint j=1 ;j<=cuj+)Sys texxLQuLpcinUi *j);循環次數為時間復條度為O<nlog2冰V n - O (n log 2 n)«.時間復雜度Wa)的二重據環 int n=8; torlint i=l;K=rKiA=

5、2) forUnl j=1 ;j<=i;j+) System. outprint(i*j):總的循環次數為fe時間g雜度為91、什么是集合通i怡況卜 riwi+iiiNj性質的一類東內,聚成一個幣體,就吋以稱為集合。 比如,用Java編稅的所冇程序員,全體屮M人等。2、什么是集合框架集合桐架是為表示和操作集介而規定的一種統一的標準的體系結構。任何集介 框架都包介三大塊內容:對外的接U、接U的實現和對集合運算的兌法。3、集合框架對我們編程有何助益:它減少了稈廳S計的卒窮、它提W FR庁逨 度和質莆。10、CoUechon接口是一允許承i(的對象。組成對的鍵一值對象,Set接繼承Collec

6、uoii.但不允許重復,使用H己內部的一個排列機制。 List接LI繼承Collecuoii,允許艱仏 以元農;插的次W來放?元系,不會朮新 排列.即所持Yi的是key-value pairs <. Map中不能打的kevo擁fn'i己的內部作列機制。矜器屮的冗系炎職都為Object。從界器収以元農時,必油把它轉換成盼來的炎型.第四韋:遞歸1、遞|門的定義 矜一個對象部分地包介它FILL,成用它fl l!給I'ld定義,則稱 這個對象是遞Di的:打一個過稈fi:接地成m技地調mrid,則稱這個過is是遞 歸的過程。第五章:數組列表1、線性衣是由n (nO)個相同類型的數據

7、元素al,a2t . an組成的有限序列, 記作:LineaiList=al,a2,., an艽中,表示線性表的元索個數,稱為線性農的長度。2、線性表的順序存儲結構:足用一飢連續的/f儲單元岣呼介:放線件農的數W元 索,數樅元索A內介的物理介儲次序勾它們在線性農屮的邏料次序是一致的, 即數據元素m勺jl;前驅數據元粲1及后繼數據元紊ai+l的位苻相鄰。5、為什么需要串行化:希鉛AmiyList對象保存到文件中,以便于恢G使用。6、如何實現類可串行化:見練習 packav Java.io;public interface Serializable /標記接口7、_是允許以一致的方式對集合對象的元

8、系進行汸14的對象。迭代器對象一W發現另一個對象在結構上修改這-集介,就Hr上么報錯。這是因 為一口.你開始對一個ArrayLisr對象進行迭代,就小能冉修改這個AirayList完 糧性。W此彈出 CoiicuiientModificatioiiExcepdoii1.亨W CoUecuon技I I含義及乃法 Collection 接 口Collection總穿次銘構中的根摶U。Collection表示一組對象, 這些對象也稱為collection的兀尜。JDK小提供此接口的任M 直接束現:它提供具體的子接門(如Set和List)丈現。 Collection 方法: paclugejmitil

9、 public imerface Colleedon mt sizeO;送0此 coBeedon 中的元去ft- boolean Lsf mptyOj如吳此 collsticn 不念元IL 11 返9 true. booleflDContamsCObjecto);? 4dS此eoDtioc包含播定的元X賈使E true. Iterator iieratort)riSB在此calkctioii 的無進行斟t的送代篇. ObjoctQ ioArra>(X返回色含此eolkrtian中所有元親的番軋 Object0 i&lrra>fObject aD);1)逆H色含此coBtcd

10、on 中帝有元紊的教也. boolein >dd(Ob>ct oX WfitttcoIkaiDo Mffi定的元史 C 可MWH . >001視0快:0扣0>從此collcdon中移»抱定元董的單個實« SD榘存棚 話(可選灌作). bookan contaixuMllCoIlectioii ckvloMft cfiUtoioa 含櫓定 coUectwn 中的所有元ft. W返回 <就lionc);轉嫩史 coUecbon 中的所_元童4V滅to費此 coDection 巾 MeanjenwrlCoIkcoonc):移詠Jt eollmion

11、中押曲電包含在措史collection 中 oolt)-m.ll(CnIlrrtionc)y * 僅保此coIlectioKi 中,4£也任含在投定>1111100 的 void dearQ 此collectkm 申的(蚵選 1作 boolean aquOfajoet of 比快此 eoILrtian 與衛走對象相豕 ini buhCcdeOi 返S此 coUartwo 的份粉HS-2. VW Collection I »j List tfcl I的關系見練>本1 VW ArrayList »j數泔之fuj的關ArravList Xj數組進tfTJII

12、 序,蚍續UJ 本4 從川戶角度如何理解ArravLLSt i從開發7i flj度如何理W ArravList ? AixavList比數組多/一叫増減數據的方法o5 VWAnayList常用力法的介義及使用賺.見I5P1216 會實現 ArrayList 的關卬介fifi簡化版.tiWJtx常川的力從 size); LsEinpryij; contains(Objectoj ; index0f(Object clem) ; add(Object o): removeObject o) ; clears); ger (mt mdex);set (mt index. Object element

13、)< 1) public mt sizeQ return size, (2) public boolean isEmptyv)if(size=Ojreturn uue,return false.< 3) public Boolean contains;Object o) return mdexOfopO, )(4> publicintLndexOf(Object elein) if (elem null) for (mt i = 0, l < size, i+) if ( el ement Dateinull) return i.for (mt l 0, l <

14、size; i+) if(elem equals elemenrDateL) return i.retuni-1.(5) public booLeanadd(Object o)ensureCapaatsize+1)» elementDatesize+J«o,return true.(6) public Object remove(int mdex) if(iQdex<O|iadex>=size)return null.Object temp-elementDateind ex. fonjut pindex,j<aze,j+) elemenrDatej-el

15、enientDatej+1 】,size-,return temp.(7) public void clcar()modCount+>fortmt i=0j<size,i+4jd emcntData l=du11, size 0,(8) public Object getmtindcx)邊 liid ex< 0| |ind ex>-az e j return null,return eLemeutDateind ex,(9)7現解done方法的貪義.并淺克降度克降迸行說叫及陽示 為什么需要克隆: 艦決得一個副木,即另一份拷W。 如何實現類可克隆 package java

16、.lang; public interface Cloneable /標記接口 Eg public Object cloneQ ArravList v = (AiravList)super.c 1 one0, / copies sizev.elenieiitData = new Object【size,Svsteni.arraycopy(elen)eiitDa(a< 0, v.elenientData.O, size), v.modCouut = 0,return v; )catch (CloneNotSuppouedExceplion e) / tins shouldift happe

17、n, since we aie Cloneable throw new lnteinalEnorO.)myListlmvList3常 WJSIIKona,Kihei1. 教w上的習題、上機題、常川兒個方法的吋問鉍雜度4. 曲讀程序,寫出運行結果AmyList lefnew ArravLisr,Let addcpj,kt.add(0, Vj,let addC),System out.pimtLmlet.iudexOWJ),let remove 1System. out.pnntin(let get 1),Svstein out.pLintln(let coataiumJ,5. AnayList屮

18、定義丫、個方法,說明該方法在炎屮正確的方法名稱 public Int unkown(ObJect elem) if (ekm = null) for (int i = 0; 1 < size; i+) if (cleniciitDalai|=nulb return i;I else ror (int i = 0; i < size; i+) if (elem.eqiials(elementDatai) return i; return -I;6. 假ArrayList屮添加如卜方法.W出埒個方法的力法體 public boolean addFirst (Object elemenr

19、 ipublic boolean addLast (Object element)public Object removeFirst()public Object removeLast() public Object getFirst () public Object getLast、)第六章:鏈表 一、貶求1. 對象變對象丈體關系.m示說明的甲變w勺糾象變w:的I*:別2. 以個鏈農為介實現Linked List的陽匕版.包常用的Zj'iA size(): isEmpcyu: contamsObject o); indexOf(Object elemj : add(Object o)

20、; removeObjct o) :ger tint index; ; set (mt index. Object elemenrj: get (int index); getFirstjgetLasrv removeFu:st() jmoveLastiJ A.5pubLic class MyLinkedList Entry header, mr SLze,public MyLinkedList ()head mew Entnnulljiull), SLze-O; public int size(j return size, public boolean isEmpty() l£(s

21、lzc0) return true, elseretum false, .public boolean add(Object o) Entry q-new Entnojiull), Entry p=head er, whde<p next=nulljp-p n«t,p.next-q, SLZC+, return true, public void add(mt indcx.Object elemcat)/*if(Lndex<O|iDdex>size)throw Ind exOutOfBouik sExccpa on(+slzc)/ Entry q-new Entry

22、elementiull), Entry p-hcader.forint l 雪 04<mdex4+)p=p next,6 6q next麵 p next, p.nexr-q,SLZC+, public boolean containObject dem)Enuy p-headernext, xvhdetp,=oull)if(p. el ement. equa I s( elem) return true,ppnext,return false, /public Object get(mr index八if(ind ex<0|ind ex>-sze)Entrv q-header

23、. foi|mt i-04<Lndex4+) q-q.next,return q,public Object reniovemt index) if(ind ex< 0| |ind ex>-az e) return null. Entry q=header, foimr j=indexj<size1j+)q-q next.q.next-q.next ne?ct. size-, return q, /public int mdexOf(Object d«n, if (dem null) for(int l - 0. l < size, i+) if (el

24、ementDatefinull) return l, else for(int l 0, l < size> i+) if (elem equals(elemenrDatei) return i, return -1,3. 寧握滬環a衣定義并以甲.環鏈衣的形式丈現上題:見練習4. 掌擁奴端鏈衣定義并以雙瑞鏈農的形式實現上題:見練)J5. 笮握雙向鏈衣、嘆叫晰壞鋌衣概念及定義:公_出叫貼壞61衣的仙入、刪除閽小以及 會書寫部分代碼:見卜6. 從用P炻度如何押解LmkedUst?從汗發芥«/£如何押解LinkedList?7 VM. LinkedList常川/認的介

25、義及使川脈:地書FU50S如何胛解鏈A:/儲結構屮設:吶兵(鍋點的方式7/79 如何川LLukedList 屮 header &據hkM哨兵問Jprivute transient Entry header = new Enlry(nulL null); private transient int size 0;11.悶述 LinkedLLSt *j AixayList 發別如果何用程序對冷個尜引位宵的元索進打人黽存収/刪除操作.An-avList對象耍遠遠優 J . Linked List 對象.如川W序t®對列表進行循環,并幾在循壞的時候進行插入成荇刪除操作, LmkedL

26、ist對象攰遠遠優J; ArravList對象.12你足如何押解迭代器丁作?平揮迭代器的忮用/法:w卜1. 單鏈表的特點:修個元索(農項)由結點(AWr)鉤成: 線性結構header lol "HilAl點nf以個連純介儲表可擴充。Z插入結點笫一種情況:在笫一個結點前插入public void addFirst(Objcct o) / make new EntryEntry newEnlry new Entry(o. null); ncwEnti y.next = licadei.next, header .next = new Entry; size十十:newEntrl |new

27、Entrheader | 1 二 |header(插入前)(插入后)/第二種情況:在鏈表中間插入newEntry. next =current.next = newEntiy ;new KnlcurrentLU-new Kn值current(插入后(插入前),第三種情況:在鏈表末尾插入 newEntry.next = current.next; urrent,next = newEntry;newEnt | |curren 貧n ewEntrv DOi(插入前)(插入后)3. 刪除結點(1) public Object removeFirst()/ (assumes list not empt

28、y) Object first= header.nexLelement; header.next = hcader.next.next; size; return first; )(2) public Object removeLast()(Entry pre = header; Entry current=pre.next; whilef current .next != null) pre= current; current = current<next; ) prc.next=null; size; return current.element; I4、遍歷為了顯示鏈農,從head

29、er開始,沿著引川鏈從一個鏈結點到卜一個鏈結點。 變!|I cuiienc按順#桁向符一個陸結點。Curieut ft宂桁向header,那坍存第-個 鏈節點的引用。public void displayList() System.out>print(,fList (header->last):"); Entry current = headennext;/ start at beginning of listv hile(current != null)/ until end of list.current.(lisplnyEiitry();/ print datacu

30、rrent = current.next; / move to next EntrySystem, out. printin5、査找*public int indexOflObject o) ini index = 0;for (Entry e = headennext; e != null; e = e.next) if (o.eq uals( e.elemen t) return index; index+; return -1; I public boolean containObject o) return indexOf(o) != -1; I6、獲取(1) public Objec

31、t getFirstO if (size= =0)throw new NoSuchElementException();return header>next«element; I(2) public Object get (int index)(if (index < 0 II index >= size) throw new IndexOutOfBoiindsExceptioiM"Index: M+index+ ”,Size: M+size); Entry e = header.next; for (int i = 0; i < index; i+

32、) e = e*next; return e.elcnicnt; (3) public Object getLast() 7、雙端鏈表X乂端鏈表與傳統的鏈表非常相似,似是它有一個新特性:對砧后一個鏈結 點的引用,就像對第一個鏈結點的引用一樣。迭代器Iterator 接口 package ja'D iitil, public interface Iterator boolean liasNext(), Object nexty, void lemoveO, ) List Iterator 接口 package ja'D.util, public interface Listlte

33、rator extends Iterator boolean liasNextQ, Object nextQ; void lemoveO; boolean liasPieviousQ, Object previousQ. int iiex(Index()5 int previouslnde void set(Object o), void add (Object o); )二、常蚍題H1. 教M上的習題2. 上機題3. 常用幾個方讓的時叫0雜度4. 閱讀程序,寫出運行結果Linked List let-new LmkedListO, let adWJ, let add(0, V”, ktadd

34、(“e”),System out.pnndn(lct. ind exOf( p” j let removal), System. out.pimtln(let.get(l). System out.ptmthxlet. containsC1), Svstcm out.pLintln(let. getFu:st(),5. LmkedList屮定義/一個/法,說叫改/法在炎屮正碗的/i丄名稱 public me unko n(Object o)int index o,for (Entry e - header next, c = null, e 畫 e.uext) if (o equal s(e.

35、 el emem) return index, lndex-H-. return -1; 1. LinkedList屮定義了一個方法.說明該方認在類屮止峋的捕、V、稱 public Object unkowixjnt index) if (index < 0 | index >= size) hrow new Ind exOutOfBound sExcepnon( Ind ex ,+index+, Size +size Entry* c - header next.for (mt l 0, i < index,i+) e-cnext.letuine element,10/11

36、第七章隊列和棧一、要求1. 莩握隊列、找的堪本槪念:見F2. 利川申鏈表實現找(一般不S盔哨兵,中.鏈表的頭火棧頂)3. 利用數組實現棧(棧底為。1)4 簞択利用ArravList、LinkedList實現找5. 牮握利用雙端-衣實現隊列6. 常択利用ArravList、LinkedList實現隊列7. 以Queue或SKick為例.W述繼承介成的使用方認s.窄W棧、隊列所科萬法的含義及使用1、隊列是元素的序列,在隊列中:(1) 只能在隊列尾進行插入;(2) 只能/I:隊列頭迸行刪除、獲取和修改. 特點:先進先出:2、棧(stack)棧的定義和特點定義:限定儀作衣尾進行插入成刪除操作的線件衣,

37、表尾一找頂,衣尖一棧底, (允許插入和刪除的一端稱為棧頂(top),K一端稱為棧底(bonom):不介元素的空衣稱空棧:特點:先進后出(HLO)或后進先出(LIFO);3、堆棧足一個元茗#列。堆找中唯一能被刪除、I方問成修改的元躬足記近插 入的元袞。這個元素就是位T堆棧頂部的那個元素。TOP -敁近捕入的數據元索PUSH -入棧,在找頂插入一個數槲元索POP -出棧,刪除棧頂的數你元素4、下面操作輸入的結果是多少:Stack inyStack = new Stackf ); for (int i = 0; i < 10; i+)niyStack.push (new Integer (i

38、* i); while (ImyStack.isEmpty()gui.println (myStack.pop();結果是:0、1、4、9、16、25、36、49、68、81二、 常 WSiH1. 教W上的題、上H 常川兒個方法的時叫«雜度4. y出卜列W序段的輸出結果public static void main(Scnng args )fl/£T聲誑凹蟲柚3明樹X二WWWXW2SW-E互 '明神士球曲士莩¥ 教雎好解組不啤穿鈞+_»#迪;5¥接 事_« 等_曲綠+明穿W眘擗茇二新一求S樹寨®每財X二:宴V蚩 Vp

39、>qsnd s V)dod i=p) (Xudtugsrx.bpq.u c(p啡nd 丄(»)siunbj pi'yi Mod s=p “<jdrassrspqM "ppafqo V)?oas au = ipns (a x>fqo'S jpasV。卽 piOA羽收明7?總叩.4】即”年職:S/ 7 xkrpmjdano wiasASVAlnidino TnajsXsVa) ononj)ap f) (Uiduigsi*J)t >pqa aqu) onan&ro b c(x) anantppt) 7x) Qnin&TO &

40、amp; 7x)0%(人加puirqo aqu)J)0jujocjcq3 auu)&aou) annxpYhaDuiuio in -a %t5l»K>Tnrq;3 iun-x npiircqo (brwnO .uou-0 arunj) ( sjc Pui.ns>tncui pioa onms onqnd1辟屮哄MSAMfhH K7 x)upuudmo tusjsas 7Atoidino tus.<s4(Aldod s (XvidingsT s; bpqav '(A) wioavqo.iwu)qsnds IodS c(x)qsnd s c( <4

41、C)wioujvqj .uQU)qsnd s VViods Aqsnds Y(crc)naioEicqo Ai3U)qsnd s cfx)qsnd s c (c5|c) wiotnrqo.(co<) wpcjcqo auu 'A*x waocjvqo YOI tepas .似u S spas2. 熟悉出二乂W的5個性質:兇卜3亨握二叉樹的叫種遍歷方法:先根.中根.后極.寬度優先遍歷4窄W二乂搜索W的慨念?5. VW二叉樹使用鏈式存W結構吋結點描述及二叉樹的描述(定義用數組存儲完全二叉樹是非常有效的。 完全二叉樹能用ArrayList存儲么?可以,其效率等同于用數組來存儲.如果用L

42、inkedList存譴呢? 不是一個很好的選擇。對于無序的數組,ArrayList,或者LinkedList集 合插入、査找或者刪b的時間復雜度是的線6. 帑擁二義搜/few的捕入九糸m #能夠依據該訂法t成一腳j二義搜索w,會川漢說描 述刪除元素的算法?兄練習7. 教W屮BinSearchTrec類屮ft找某-個乂索的算法?S.完全二叉樹采H1順序介W紡構實現,試描述二叉W的定義及實現木方法? K樹的定義W是由n (n 0)個結點組成的有限集合。如果11=0.稱為空樹:如果11 > 0.則1)冇一個特定的稱之為根(loot)的結點,它只冇ft接后繼.但沒冇ft接前 驅;2)除報以外的其

43、它結點劃分為m (iii>=0)個互+相交的有限集合T0, Tl,.,Tm-l,每個集介乂是一棵樹,井且稱之為根的子樹。2、樹的特點:毎棵子樹的報結僅打一個接前馭,但可以脊0個成多個 ft接后繼。夂二叉樹的性質:1) 若二叉樹的層次從0開始,則在二叉樹的第i層最多有2i個結點。(iO)2) 島度為h的二叉樹城多有2/+1-1個結點(/i之-】)3) 對任何一棵二叉樹,如果其葉結點有0個,度為2的非葉結點有n2個, 則有:n0=n2+l若設二叉樹的髙度為b則共有/>+1層.冇n (n > 0)個結點的完個二叉樹的咼度為riog2(/rtl)1-1性如將一棵有個結點的完全二叉樹自

44、 頂向下,同一層自左向右連續給結點編號0,則有以下關系:若則f無雙親若/>0,則I的雙親為L(/-iy2 若則/的左子女為2*1+1.若2*/+2 < w,則/的右子女為2巧+2 s若/為偶數,且0. 則其左兄弟為hl,若5)/為奇數,且門/1-1, 則其右兄弟為#+14、遍歷二叉樹(見書上)5、儲存結構BinSeaichTiee炎+坫Java巣介框架的一部分.但是它實現 Collection接LL實際上,BmSearchTree只實現Collection接口的輕微擴充:Set接口。Set接口 繼承了 Collection接口,并且不允許冇®父的值。6、public bo

45、olean contains (Object o) Entiy temp = root, int coinp.(teiup.element);while (temp != null) comp = (CoinparableJo)xonipareTo if (comp = 0)return true, if (comp < 0) tenip = temp.left, elsetemp = temp, fight; )/ wiule return false, )/ comains7、averageTime("> 是 O(log n).二、 常見題El1. 教m上的題、上機題

46、、常用兒個方法的時問«雜度2. 從一棵仝的二叉排序W開始,將以卜關鍵碼俏依次插入:25.13,1531,7,20,37.沽相出插 入全部完成的二叉作序W.3. 給出卜列二叉數的先根、屮根.歷的結Z:序列。4 W的柚本槪念第十韋:TreeMap、TreeSct一 W要求1. 笮W映WNIap接【I及Jt的穴義?15/152 V握史介Set接U及其的含義?3比較Cdlecnon接I I及U Set接口的S別 Set對Coolecuon進行了限制,限制f 的部分4. VW TieeMap數據存儲結構,TieeMap »內部結點的定義?5窄握Tredvfap類有常用萬法含義及使用方

47、法6使川TreeMap炎屮返M鍵災、鍵仇圯方法.熟悉這方法如何使川迭代器? package tteeinappack.import java util *,public class TestTreeMap public static void rmin(Stnng args) TreeMap rml-new TreeMap),/* Svstem. out pnntln( 'sEmptv-"+tml isEmpt)人/ tml:put( 20090101-ka”,tml put、”20090203”,wangwiT),/ System out.pnntlnC put-"

48、;+cml.pui( 20090203", wangwu"),*/ tml:put("20090102", zhangsm”),tml.put(M20090104e,huluM)>/System, out. pnntln(弘卜” +tml.get( 20090203u), System.out puntliK pur-* +unl put(M20090203* 1 wwangwu j). System.out.piindiK get-*+unl geawM20090203J),System, out pnntlxi( size= +0111512,

49、", System, out piintinisEmpty+tmlLsEmptyx),/*Itenitoc LtLunl keySetG.uernonj, w hile(itr. hasNext()System.out.pnnt(H M+itt.next(), System, out puntloo.Iterator a-mil valueaj.iterator, while(it.hasNext)System out.pnnt(n M+it.next<)> System. out.pLintlix), Iterator lte-tml enuySeH).Ltewtoc(

50、), uhile(itehasNext()System outpiinHH H+ite nexc),*/TreeNtap ttn2-nev TreeMap(),tm2.puttn20090305n, q<iqqqJ,tmZputAlltml),/Ireraror irr=tm2.keySenj.iteraronj,while(itr.hasNex)jSystem out.printsH H+itr.next(), System. outprindiK )>Iterator it=tm2 vaLuesjiteratocO, whileLt.hasNex)System out.pnnt

51、M ”+itnext0/, System, out.pnndix).Iterator ite=tm2 entrySettj iterator, 16/16whilc(Lte.hasNext()System outpnntf ”+irc/System out.pnndn( ,+tm2 remove(,20090305j). System.out.pondix +tm2 coatainsKeyM20090305*)» System, out pundnC +tm2 coatainsVaiuefqqqqq ), tm2 deanj.Iterator iti-=tm2.keySet().Lt

52、emtoct)>while(ia.basNext()System.out.prrntC M+itr.next()>7. 比較 Comparator IS I 1 Compatible 1611?綠)J8 TrcrSet炎有哪哼常用方法,解釋方法的介義?9. 比較TreeMap與TreeSet區別勺聯系(從用戶的角度、從開發人員的角度)?10. -VW TreeMap與TreeSet的簡笮應用(汴總釘序)1、映射(MAP )足一種覽介,災介屮的毎個數裾元系邡由W部分組成:_一的 鍵(KEY)部分和ft(ALUE )部分。2、Java 屮定義:public mteiiace Map將鍵

53、映射到值的對象。一個映射不能包介甫ft的鍵:毎個鍵扱多只能映射到 一個值。Map接U提供三種collection視閣,允許以鍵集、fft集成鍵-fft映射關系集的 形式舎看某個映射的內容。映射聯冷定義力迭代器在映射的collecuon視閣上 返回其元累的順序。坫呰映射實現可明確保證其順序,如Tree Map類;另一呰 映射實現則不保iiE順序,如Hash Map類。3、用迭代器遍歷students里的元素:Iteratoi id = students.entiySet( ).itei3tor(), while (itt.liasNexc()gui.pnntln (iu.next(),用迭代器遍

54、歷students里的鍵值:Iterator in = suidents.keySet( ).irerator(); wlule (iti.iiasNexl()giii.printlii (iu.iiext(), 用迭代器遍歷students里的值:Iteratoi itr = students.values( ).iteiatoi(); while (iti.hasNext()gui.piiiKlii (iti.next(),4、Comparator接口允許用戶在一個類甲.珣蓋此接口.例如,如果我們想 Scriug對象按照字符串長度來抹序宋鋝代原來的方法.例如:public class Bv

55、Lengtli mipleinents Coinpaiator public mt compaie (Object ol, Object o2) renirn (Stnng)o 1 ).lengrh() - (Scring)o2).length();)/ compaie/ uses Object s veision of equals )/ class ByLengihTieeMap youiMap = new TieeMap (new BxLength(),youiMap.pin (“yes”,new Integer (1); youiMap.put (“no”,new Integer (1

56、 ), yoinMap.pnt (“inaybe new Integer (1); youiMap.pin (“tme, new Integei (1),vourMap.put (“false”,new Inceger (1), /現在關鍵'/按u:度來排卬,其鍵不允許am a卩長度相冋的). Iterator itr = yourMap.keySet( ).iteratoi(); while (itt.hasNext()giu.pnutln (iu.next(); 輸出結果:uovesHueniavbe5、由F thesaunisMap對象-棵紅JSW,向它的svuonyniList中插入第i個 元索時,進差情況下,大約箱要log2i對第1、2n個元素可以用總的花費 來作為敁大開銷時間:iilog2ii6、TreeSet1) TreeSet對象是一個小允許元紊屯®的苻序巣合。2) 雉本I: TreeSet類的對象足所打元東邡釘相Mffi的TreeMap對象。3) TreeSet類和BinSeaicliTiee類有相l“j的A法,但wb TreeSet類比較快,乍少 在最壞情況下.對 丁 add,leinoxe,和 contains, woistTiine(ii) log n, BinSeai

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論