版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第七章集合常用的集合類Iterator迭代器的使用foreach循環(huán)泛型Collections、Arrays工具7.1Collection接口7.2List接口7.3Set接口7.4Map接口7.5JDK5.0新特性——泛型7.6Collections工具7.7Arrays工具在前面的章節(jié)中介紹過在程序中可以通過數(shù)組來保存多個(gè)對象,但在某些情況下無法確定到底需要保存多少個(gè)對象,此時(shí)數(shù)組將不再適用,因?yàn)閿?shù)組的長度不可變。JDK中提供了一系列特殊的類,這些類可以存儲(chǔ)任意類型的對象,并且長度可變,統(tǒng)稱為集合。集合按照其存儲(chǔ)結(jié)構(gòu)可以分為兩大類,即單列集合Collection和雙列集合Map,第七章集合Collection:單列集合類的根接口,用于存儲(chǔ)一系列符合某種規(guī)則的元素,它有兩個(gè)重要的子接口,分別是List和Set。其中,List的特點(diǎn)是元素有序、元素可重復(fù)。Set的特點(diǎn)是元素?zé)o序并且不可重復(fù)。List接口的主要實(shí)現(xiàn)類有ArrayList和LinkedList,Set接口的主要實(shí)現(xiàn)類有HashSet和TreeSet。Map:雙列集合類的根接口,用于存儲(chǔ)具有鍵(Key)、值(Value)映射關(guān)系的元素,每個(gè)元素都包含一對鍵值,在使用Map集合時(shí)可以通過指定的Key找到對應(yīng)的Value,例如根據(jù)一個(gè)學(xué)生的學(xué)號就可以找到對應(yīng)的學(xué)生。Map接口的主要實(shí)現(xiàn)類有HashMap和TreeMap。第七章集合集合體系架構(gòu)圖第七章集合7.1Collection接口Collection是所有單列集合的父接口,因此在Collection中定義了單列集合(List和Set)通用的一些方法,這些方法可用于操作所有的單列集合。7.2List接口7.2.1List接口簡介List接口繼承自Collection接口,是單列集合的一個(gè)重要分支,習(xí)慣性地會(huì)將實(shí)現(xiàn)了List接口的對象稱為List集合。在List集合中允許出現(xiàn)重復(fù)的元素,所有的元素是以一種線性方式進(jìn)行存儲(chǔ)的,在程序中可以通過索引來訪問集合中的指定元素。另外,List集合還有一個(gè)特點(diǎn)就是元素有序,即元素的存入順序和取出順序一致。List不但繼承了Collection接口中的全部方法,而且還增加了一些根據(jù)元素索引來操作集合的特有方法。7.2.1List接口簡介7.2List接口7.2List接口7.2.2ArrayList集合ArrayList是List接口的一個(gè)實(shí)現(xiàn)類,它是程序中最常見的一種集合在ArrayList內(nèi)部封裝了一個(gè)長度可變的數(shù)組對象,當(dāng)存入的元素超過數(shù)組長度時(shí),ArrayList會(huì)在內(nèi)存中分配一個(gè)更大的數(shù)組來存儲(chǔ)這些元素,因此可以將ArrayList集合看作一個(gè)長度可變的數(shù)組ArrayList集合中大部分方法都是從父類Collection和List繼承過來的,其中add()方法和get()方法用于實(shí)現(xiàn)元素的存取。7.2List接口7.2.2ArrayList集合接下來通過一個(gè)案例來學(xué)習(xí)ArrayList集合如何存取元素7.2List接口7.2.3LinkedList集合List接口的另一個(gè)實(shí)現(xiàn)類LinkedList,克服了ArrayList集合在查詢元素時(shí)速度很快,但在增刪元素時(shí)效率較低的局限性。該集合內(nèi)部維護(hù)了一個(gè)雙向循環(huán)鏈表,鏈表中的每一個(gè)元素都使用引用的方式來記住它的前一個(gè)元素和后一個(gè)元素,從而可以將所有的元素彼此連接起來。當(dāng)插入一個(gè)新元素時(shí),只需要修改元素之間的這種引用關(guān)系即可,刪除一個(gè)節(jié)點(diǎn)也是如此。7.2List接口7.2.3LinkedList集合LinkedList集合添加元素和刪除元素的過程如圖。7.2List接口7.2.3LinkedList集合LinkedList集合除了具備增刪元素效率高的特點(diǎn),還專門針對元素的增刪操作定義了一些特有的方法。7.2List接口7.2.3LinkedList集合接下來通過一個(gè)案例來學(xué)習(xí)這些方法的使用。7.2List接口7.2.4Iterator集合Iterator接口也是Java集合框架中的一員,但它與Collection、Map接口有所不同,Collection接口與Map接口主要用于存儲(chǔ)元素,而Iterator主要用于迭代訪問(即遍歷)Collection中的元素,因此Iterator對象也被稱為迭代器。通過一個(gè)案例來學(xué)習(xí)如何使用Iterator迭代集合中的元素。7.2.4Iterator集合7.2List接口需要特別說明的是,當(dāng)通過迭代器獲取ArrayList集合中的元素時(shí),都會(huì)將這些元素當(dāng)做Object類型來看待,如果想得到特定類型的元素,則需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。7.2List接口7.2.4Iterator集合Iterator迭代器對象在遍歷集合時(shí),內(nèi)部采用指針的方式來跟蹤集合中的元素,為了讓初學(xué)者能更好地理解迭代器的工作原理,接下來通過一個(gè)圖例來演示Iterator對象迭代元素的過程。7.2List接口7.2.5JDK5.0新特性——foreach循環(huán)雖然Iterator可以用來遍歷集合中的元素,但寫法上比較繁瑣,為了簡化書寫,從JDK5.0開始,提供了foreach循環(huán)。foreach循環(huán)是一種更加簡潔的for循環(huán),也稱增強(qiáng)for循環(huán)。foreach循環(huán)用于遍歷數(shù)組或集合中的元素,其具體語法格式如下:7.2List接口7.2.5JDK5.0新特性——foreach循環(huán)與for循環(huán)相比,foreach循環(huán)不需要獲得容器的長度,也不需要根據(jù)索引訪問容器中的元素,但它會(huì)自動(dòng)遍歷容器中的每個(gè)元素。腳下留心1、foreach循環(huán)雖然書寫起來很簡潔,但在使用時(shí)也存在一定的局限性。當(dāng)使用foreach循環(huán)遍歷集合和數(shù)組時(shí),只能訪問集合中的元素,不能對其中的元素進(jìn)行修改,接下來以一個(gè)String類型的數(shù)組為例來進(jìn)行演示。腳下留心2、在使用Iterator迭代器對集合中的元素進(jìn)行迭代時(shí),如果調(diào)用了集合對象的remove()方法去刪除元素,會(huì)出現(xiàn)異常。接下來通過一個(gè)案例來演示這種異常。假設(shè)在一個(gè)集合中存儲(chǔ)了學(xué)校所有學(xué)員的姓名,由于一個(gè)名為Annie的學(xué)生中途轉(zhuǎn)學(xué),這時(shí)就需要在迭代集合時(shí)找出該元素并將其刪除,具體代碼如例程7-6所示。例程7-6在運(yùn)行時(shí)出現(xiàn)了并發(fā)修改異常ConcurrentModificationException。這個(gè)異常是迭代器對象拋出的,出現(xiàn)異常的原因是集合中刪除了元素會(huì)導(dǎo)致迭代器預(yù)期的迭代次數(shù)發(fā)生改變,導(dǎo)致迭代器的結(jié)果不準(zhǔn)確。為了解決上述問題,可以采用兩種方式:腳下留心第一種方式:從業(yè)務(wù)邏輯上講只想將姓名為Annie的學(xué)生刪除,至于后面還有多少學(xué)生我們并不關(guān)心,所以只需找到該學(xué)生后跳出循環(huán)不再迭代即可,也就是在第13行代碼下面增加一個(gè)break語句,代碼如下:在使用break語句跳出循環(huán)以后,由于沒有繼續(xù)使用迭代器對集合中的元素進(jìn)行迭代,因此,集合中刪除元素對程序沒有任何影響,不會(huì)出現(xiàn)異常。腳下留心第二種方式:如果需要在集合的迭代期間對集合中的元素進(jìn)行刪除,可以使用迭代器本身的刪除方法,將例程7-6中第13行代碼替換成it.remove()即可解決這個(gè)問題,代碼如下:7.2List接口7.2.6ListIterator接口Iterator迭代器提供了hasNext()方法和next()方法,通過這兩個(gè)方法可以實(shí)現(xiàn)集合中元素的迭代,迭代的方向是從集合中的第一個(gè)元素向最后一個(gè)元素迭代,也就是所謂的正向迭代。為了使迭代方式更加多元化,JDK中還定義了一個(gè)ListIterator迭代器,它是Iterator的子類,該類在父類的基礎(chǔ)上增加了一些特有方法。7.2List接口7.2.6ListIterator接口通過一個(gè)案例來學(xué)習(xí)ListIterator迭代器的使用:7.2List接口7.2.7Enumeration接口在JDK1.2以前還沒有Iterator接口的時(shí)候,遍歷集合需要使用Enumeration接口,它的用法和Iterator類似。JDK中提供了一個(gè)Vevtor集合,該集合是List接口的一個(gè)實(shí)現(xiàn)類,用法與ArrayList完全相同,區(qū)別在于Vector集合是線程安全的,而ArrayList集合是線程不安全的。在Vector類中提供了一個(gè)elements()方法用于返回Enumeration對象,通過Enumeration對象就可以遍歷該集合中的元素。7.2List接口7.2.7Enumeration接口通過一個(gè)案例來演示如何使用Enumeration對象遍歷Vector集合:7.3Set接口7.3.1Set接口簡介Set接口和List接口一樣,同樣繼承自Collection接口,它與Collection接口中的方法基本一致,并沒有對Collection接口進(jìn)行功能上的擴(kuò)充,只是比Collection接口更加嚴(yán)格了。與List接口不同的是,Set接口中元素?zé)o序,并且都會(huì)以某種規(guī)則保證存入的元素不出現(xiàn)重復(fù)。Set接口主要有兩個(gè)實(shí)現(xiàn)類,分別是HashSet和TreeSet。其中,HashSet是根據(jù)對象的哈希值來確定元素在集合中的存儲(chǔ)的位置,因此具有良好的存取和查找性能。TreeSet則是以二叉樹的方式來存儲(chǔ)元素,它可以實(shí)現(xiàn)對集合中的元素進(jìn)行排序。7.3Set接口7.3.2HashSet集合HashSet是Set接口的一個(gè)實(shí)現(xiàn)類,它所存儲(chǔ)的元素是不可重復(fù)的,并且元素都是無序的。當(dāng)向HashSet集合中添加一個(gè)對象時(shí),首先會(huì)調(diào)用該對象的hashCode()方法來確定元素的存儲(chǔ)位置,然后再調(diào)用對象的equals()方法來確保該位置沒有重復(fù)元素。接下來通過一個(gè)案例來演示HashSet集合的用法:7.3Set接口7.3.2HashSet集合HashSet集合之所以能確保不出現(xiàn)重復(fù)的元素,是因?yàn)樗诖嫒朐貢r(shí)做了很多工作。當(dāng)調(diào)用HashSet集合的add()方法存入元素時(shí),首先調(diào)用當(dāng)前存入對象的hashCode()方法獲得對象的哈希值,然后根據(jù)對象的哈希值計(jì)算出一個(gè)存儲(chǔ)位置。如果該位置上沒有元素,則直接將元素存入,如果該位置上有元素存在,則會(huì)調(diào)用equals()方法讓當(dāng)前存入的元素依次和該位置上的元素進(jìn)行比較,如果返回的結(jié)果為false就將該元素存入集合,返回的結(jié)果為true則說明有重復(fù)元素,就將該元素舍棄。7.3Set接口7.3.2HashSet集合根據(jù)前面的分析不難看出,當(dāng)向集合中存入元素時(shí),為了保證HasheSet正常工作,要求在存入對象時(shí),需要重寫Object類中的hashCode()和equals()方法。例程7-9中將字符串存入HashSet時(shí),String類已經(jīng)重寫了hashCode()和equals()方法。但是如果將Student對象存入HashSet,結(jié)果又如何呢?7.3Set接口7.3.2HashSet集合接下來針對例程7-10中的Student類進(jìn)行改寫,假設(shè)id相同的學(xué)生就是同一個(gè)學(xué)生,改寫后的代碼如例程7-11所示。7.3Set接口7.3.3TreeSet集合TreeSet是Set接口的另一個(gè)實(shí)現(xiàn)類,它內(nèi)部采用平衡二叉樹來存儲(chǔ)元素,這樣的結(jié)構(gòu)可以保證TreeSet集合中沒有重復(fù)的元素,并且可以對元素進(jìn)行排序。所謂二叉樹就是說每個(gè)節(jié)點(diǎn)最多有兩個(gè)子節(jié)點(diǎn)的有序樹,每個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn)組成的樹稱為子樹,通常左側(cè)的子節(jié)點(diǎn)稱為“左子樹”,右側(cè)的節(jié)點(diǎn)稱為“右子樹”,其中左子樹上的元素應(yīng)小于它的根結(jié)點(diǎn),而右子樹上的元素應(yīng)大于它的根結(jié)點(diǎn)。7.3Set接口7.3.3TreeSet集合二叉樹中元素的存儲(chǔ)過程:當(dāng)二叉樹中存入新元素時(shí),新元素首先會(huì)與第1個(gè)元素(最頂層元素)進(jìn)行比較,如果小于第1個(gè)元素就執(zhí)行左邊的分支,繼續(xù)和該分支的子元素進(jìn)行比較。如果大于第1個(gè)元素就執(zhí)行右邊的分支,繼續(xù)和該分支的子元素進(jìn)行比較。如此往復(fù),直到與最后一個(gè)元素進(jìn)行比較時(shí),如果新元素小于最后一個(gè)元素就將其放在最后一個(gè)元素的左子樹上,如果大于最后一個(gè)元素就將其放在最后一個(gè)元素的右子樹上。7.3Set接口7.3.3TreeSet集合假設(shè)向集合中存入8個(gè)元素,依次為13、8、17、17、1、11、15、25,如果以二叉樹的方式來存儲(chǔ),在集合中的存儲(chǔ)結(jié)構(gòu)會(huì)形成一個(gè)樹狀結(jié)構(gòu)。7.3Set接口7.3.3TreeSet集合通過一個(gè)案例來演示TreeSet對元素的排序效果。7.3Set接口7.3.3TreeSet集合在TreeSet集合中存放Student類型對象時(shí),如果Student類沒有實(shí)現(xiàn)Comparable接口,則Student類型的對象將不能進(jìn)行比較,這時(shí),TreeSet集合就不知道按照什么排序規(guī)則對Student對象進(jìn)行排序,最終導(dǎo)致程序報(bào)錯(cuò)。因此,為了在TreeSet集合中存放Student對象,必須使Student類實(shí)現(xiàn)Comparable接口。7.3Set接口7.3.3TreeSet集合定義的類沒有實(shí)現(xiàn)Comparable接口或者對于實(shí)現(xiàn)了Comparable接口的類而不想按照定義的compareTo()方法進(jìn)行排序,,例如,希望字符串可以按照長度來進(jìn)行排序,這時(shí),可以通過自定義比較器的方式對TreeSet集合中的元素排序,即實(shí)現(xiàn)Comparator接口,在創(chuàng)建TreeSet集合時(shí)指定比較器。接下來通過一個(gè)案例來實(shí)現(xiàn)TreeSet集合中字符串按照長度進(jìn)行排序。7.4Map接口7.4.1Map接口簡介在現(xiàn)實(shí)生活中,每個(gè)人都有唯一的身份證號,通過身份證號可以查詢到這個(gè)人的信息,這兩者是一對一的關(guān)系。在應(yīng)用程序中,如果想存儲(chǔ)這種具有對應(yīng)關(guān)系的數(shù)據(jù),則需要使用JDK中提供的Map接口。Map接口是一種雙列集合,它的每個(gè)元素都包含一個(gè)鍵對象Key和值對象Value,鍵和值對象之間存在一種對應(yīng)關(guān)系,稱為映射。從Map集合中訪問元素時(shí),只要指定了Key,就能找到對應(yīng)的Value。7.4Map接口7.4.1Map接口簡介首先了解一下Map接口中定義的一些通用方法。Map接口提供了大量的實(shí)現(xiàn)類,最常用的有HashMap和TreeMap,接下來針對這兩個(gè)類進(jìn)行詳細(xì)地講解。7.4Map接口7.4.2HashMap集合HashMap集合是Map接口的一個(gè)實(shí)現(xiàn)類,它用于存儲(chǔ)鍵值映射關(guān)系,但必須保證不出現(xiàn)重復(fù)的鍵。7.4Map接口7.4.2HashMap集合現(xiàn)對例程7-15進(jìn)行修改,在第7行代碼下面增加一行代碼,如下所示:map.put("3","Mary");7.4Map接口7.4.2HashMap集合在程序開發(fā)中,經(jīng)常需要取出Map中所有的鍵和值,那么如何遍歷Map中所有的鍵值對呢?有兩種方式可以實(shí)現(xiàn),第一種方式就是先遍歷Map集合中所有的鍵,再根據(jù)鍵獲取相應(yīng)的值。7.4Map接口7.4.2HashMap集合在程序開發(fā)中,經(jīng)常需要取出Map中所有的鍵和值,那么如何遍歷Map中所有的鍵值對呢?Map集合的另外一種遍歷方式是先獲取集合中的所有的映射關(guān)系,然后從映射關(guān)系中取出鍵和值。7.4Map接口7.4.2HashMap集合在Map中,還提供了一個(gè)values()方法,通過這個(gè)方法可以直接獲取Map中存儲(chǔ)所有值的Collection集合。7.4Map接口7.4.2HashMap集合從上面的例子可以看出,HashMap集合迭代出來元素的順序和存入的順序是不一致的。如果想讓這兩個(gè)順序一致,可以使用Java中提供的LinkedHashMap類,它是HashMap的子類,和LinkedList一樣也使用雙向鏈表來維護(hù)內(nèi)部元素的關(guān)系,使Map元素迭代的順序與存入的順序一致。7.4Map接口7.4.3TreeMap集合TreeMap集合是用來存儲(chǔ)鍵值映射關(guān)系的,其中不允許出現(xiàn)重復(fù)的鍵。在TreeMap中是通過二叉樹的原理來保證鍵的唯一性,這個(gè)TreeSet集合存儲(chǔ)的原理一樣,因此TreeMap中所有的鍵是按照某種順序排列的。7.4Map接口7.4.3TreeMap集合在使用TreeMap集合時(shí),也可以通過自定義比較器的方式對所有的鍵進(jìn)行排序。7.4Map接口7.4.4Properties集合Map接口中還有一個(gè)實(shí)現(xiàn)類Hashtable,它在存取元素時(shí)速度很慢,目前基本上被HashMap類所取代。但Hashtable類有一個(gè)子類Properties在實(shí)際應(yīng)用中非常重要,Properties主要用來存儲(chǔ)字符串類型的鍵和值,在實(shí)際開發(fā)中,經(jīng)常使用Properties集合來存取應(yīng)用的配置項(xiàng)。假設(shè)有一個(gè)文本編輯工具,要求默認(rèn)背景色是紅色,字體大小為14px,語言為中文,其配置項(xiàng)應(yīng)該是下面的樣子:7.4Map接口7.4.4Properties集合在程序中可以使用Prorperties集合對這些配置項(xiàng)進(jìn)行存取,接下來通過一個(gè)案例來學(xué)習(xí):7.5JDK5.0新特性
——泛型7.5.1為什么使用泛型當(dāng)把一個(gè)對象存入集合后,集合會(huì)“忘記”這個(gè)對象的類型,將該對象從集合中取出時(shí),這個(gè)對象的編譯類型就變成了Object類型。換句話說,我們在程序中無法確定一個(gè)集合中的元素到底是什么類型的。那么在取出元素時(shí),如果進(jìn)行強(qiáng)制類型轉(zhuǎn)換就很容易出錯(cuò)。7.5JDK5.0新特性
——泛型7.5.1為什么使用泛型為了解決這個(gè)問題,在Java中引入了“參數(shù)化類型(parameterizedtype)”這個(gè)概念,即泛型。它可以限定方法操作的數(shù)據(jù)類型,在定義集合類時(shí),可以使用“<參數(shù)化類型>”的方式指定該類中方法操作的數(shù)據(jù)類型。上面這種寫法就限定了ArrayList集合只能存儲(chǔ)String類型元素,將改寫后的程序再次編譯,程序在編譯時(shí)期就會(huì)出現(xiàn)錯(cuò)誤提示。7.5JDK5.0新特性
——泛型7.5.1為什么使用泛型程序編譯報(bào)錯(cuò)的原因是修改后的代碼限定了集合元素的數(shù)據(jù)類型,ArrayList<String>這樣的集合只能存儲(chǔ)String類型的元素,程序在編譯時(shí),編譯器檢查出Integer類型的元素與List集合的規(guī)定的類型不匹配,編譯不通過,這樣就可以在編譯時(shí)期解決錯(cuò)誤,避免程序在運(yùn)行時(shí)期發(fā)生錯(cuò)誤。接下來使用泛型再次對例程7-23進(jìn)行改寫7.5JDK5.0新特性
——泛型7.5.2自定義泛型那么泛型的作用是什么,在程序中是否能自定義泛型呢?7.5JDK5.0新特性
——泛型7.5.2自定義泛型從運(yùn)行結(jié)果可以看出,程序在編譯時(shí)期就報(bào)錯(cuò),這是因?yàn)樵诖a第13行處存入了一個(gè)Integer類型的數(shù)據(jù),在代碼第14行處取出這個(gè)數(shù)據(jù)時(shí),將該數(shù)據(jù)轉(zhuǎn)換成了String類型,出現(xiàn)了類型不匹配的錯(cuò)誤。為了避免這個(gè)問題,就可以使用泛型,如果在定義一個(gè)類CachePool時(shí)使用<T>聲明參數(shù)類型,(T其實(shí)就是Type的縮寫,這里也可以使用其它字符,為了方便理解都定義為T),將save()方法的參數(shù)類型和get()方法的返回值類型都聲明為T,那么在存入元素時(shí)元素的類型就被限定了,容器中就只能存入這種T類型的元素,在取出元素時(shí)就無需進(jìn)行類型轉(zhuǎn)換。7.5JDK5.0新特性
——泛型7.5.2自定義泛型通過一個(gè)案例來看一下如何自定義泛型。7.6Collections工具類JDK提供了一個(gè)工具類專門用來操作集合,這個(gè)類就是Collections,它位于java.util包中。Collections類中提供了大量的方法用于對集合中元素進(jìn)行排序、查找和修改等操作,接下來對這些常用的方法進(jìn)行介紹。7.6Collections工具類1、 排序操作Collections類中提供了一系列方法用于對List集合進(jìn)行排序7.6Collections工具類1、 排序操作Collections類中提供了一系列方法用于對List集合進(jìn)行排序7.6Collections工具類2、查找、替換操作Collections類還提供了一些常用方法用于查找、替換集合中的元素7.6Collections工具類2、查找、替換操作Collections類還提供了一些常用方法用于查找、替換集合中的元素7.7 Arrays工具類java.util包中還提供了一個(gè)專門用于操作數(shù)組的工具類——Arrays。Arrays工具類提供了大量的靜態(tài)方法。
1、使用Arrays的sort()方法排序在前面學(xué)習(xí)數(shù)組時(shí),要想對數(shù)組進(jìn)行排序就需要自定義一個(gè)排序方法,其實(shí)也可以使用Arrays工具類中的靜態(tài)方法sort()來實(shí)現(xiàn)這個(gè)功能,接下來通過一個(gè)案例來學(xué)習(xí)sort()方法的使用。7.7 Arrays工具類2、使用Arrays的binarySearch(Object[]a,Objectkey)方法查找元素程序開發(fā)中,經(jīng)常會(huì)在數(shù)組中查找某些特定的元素,如果數(shù)組中元素較多時(shí)查找某個(gè)元素就會(huì)非常繁瑣,為此,Arrays類中提供還了一個(gè)方法binarySearch(Object[]a,Objectkey)用于查找元素,接下來通過一個(gè)案例來學(xué)習(xí)該方法的使用。7.7 Arrays工具類2、使用Arrays的binarySearch(Object[]a,Objectkey)方法查找元素所謂二分法查找就是每次將指定元素和數(shù)組中間位置的元素進(jìn)行比較,從而排除掉其中的一半元素,這樣的查找是非常高效的。接下來通過一個(gè)圖例來演示二分法查找
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙壁波紋管購銷合同
- 混凝土輸送泵租賃合同
- 二零二五年度BIM與GIS融合應(yīng)用技術(shù)服務(wù)協(xié)議3篇
- 守合同重信用企業(yè)申報(bào)資料
- 北京師范大學(xué)珠海分?!督ㄖO(shè)計(jì)初步(Ⅰ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版文化產(chǎn)業(yè)項(xiàng)目并購合同模板3篇
- 2025年度電商平臺(tái)入駐合作協(xié)議2篇
- 2025年酒水產(chǎn)品市場調(diào)研及品牌策劃合同3篇
- 物業(yè)公司一周工作總結(jié)
- 自動(dòng)聲控?zé)粽n課程設(shè)計(jì)
- 湖南2025年湖南省生態(tài)環(huán)境廳直屬事業(yè)單位招聘44人筆試歷年參考題庫附帶答案詳解
- GB 45067-2024特種設(shè)備重大事故隱患判定準(zhǔn)則
- 生物醫(yī)學(xué)電子學(xué)智慧樹知到期末考試答案章節(jié)答案2024年天津大學(xué)
- 幸福創(chuàng)業(yè)智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 2023 版《中國近現(xiàn)代史綱要》 課后習(xí)題答案
- 《智慧農(nóng)業(yè)》的ppt完整版
- 水稻高產(chǎn)高效栽培管理新技術(shù)課件
- 水環(huán)境保護(hù)課程設(shè)計(jì)報(bào)告
- (高清版)建筑裝飾裝修職業(yè)技能標(biāo)準(zhǔn)JGJ_T 315-2016
- 天然氣水合物科普PPT
- 施工項(xiàng)目標(biāo)前策劃管理辦法
評論
0/150
提交評論