版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国户外运动光学产品行业商业模式创新战略制定与实施研究报告
- 2025-2030年中国红外探测器行业商业模式创新战略制定与实施研究报告
- 建设客运服务品牌-促进客运企业发展
- 2025年中国运动鞋行业产销需求与投资预测分析报告
- 2025年中国药用玻璃管行业发展前景预测及投资战略研究报告
- 机械产品知识培训课件
- 二零二五年度房地产工程施工临时用电供应合同3篇
- 二零二五年度市政工程廉政承诺协议3篇
- 政策导向、汲取能力与卫生公平
- 中国味浓浓腊八节
- MDR医疗器械法规考核试题及答案
- 河南省郑州高新技术产业开发区2023-2024学年三年级上学期1月期末科学试题
- 女装行业退货率分析
- 领导沟通的艺术
- 纯视觉方案算法
- 道士述职报告
- 绿色贷款培训课件
- 2024年七年级语文上学期期末作文题目及范文汇编
- 云南省昆明市五华区2023-2024学年九年级上学期期末英语试卷+
- 2023年生产运营副总经理年度总结及下一年计划
- 2023年中考语文标点符号(顿号)练习(含答案)
评论
0/150
提交评论