




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(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ù)組來保存多個對象,但在某些情況下無法確定到底需要保存多少個對象,此時數(shù)組將不再適用,因為數(shù)組的長度不可變。JDK中提供了一系列特殊的類,這些類可以存儲任意類型的對象,并且長度可變,統(tǒng)稱為集合。集合按照其存儲結(jié)構(gòu)可以分為兩大類,即單列集合Collection和雙列集合Map,第七章集合Collection:單列集合類的根接口,用于存儲一系列符合某種規(guī)則的元素,它有兩個重要的子接口,分別是List和Set。其中,List的特點(diǎn)是元素有序、元素可重復(fù)。Set的特點(diǎn)是元素?zé)o序并且不可重復(fù)。List接口的主要實現(xiàn)類有ArrayList和LinkedList,Set接口的主要實現(xiàn)類有HashSet和TreeSet。Map:雙列集合類的根接口,用于存儲具有鍵(Key)、值(Value)映射關(guān)系的元素,每個元素都包含一對鍵值,在使用Map集合時可以通過指定的Key找到對應(yīng)的Value,例如根據(jù)一個學(xué)生的學(xué)號就可以找到對應(yīng)的學(xué)生。Map接口的主要實現(xiàn)類有HashMap和TreeMap。第七章集合集合體系架構(gòu)圖第七章集合7.1Collection接口Collection是所有單列集合的父接口,因此在Collection中定義了單列集合(List和Set)通用的一些方法,這些方法可用于操作所有的單列集合。7.2List接口7.2.1List接口簡介List接口繼承自Collection接口,是單列集合的一個重要分支,習(xí)慣性地會將實現(xiàn)了List接口的對象稱為List集合。在List集合中允許出現(xiàn)重復(fù)的元素,所有的元素是以一種線性方式進(jìn)行存儲的,在程序中可以通過索引來訪問集合中的指定元素。另外,List集合還有一個特點(diǎn)就是元素有序,即元素的存入順序和取出順序一致。List不但繼承了Collection接口中的全部方法,而且還增加了一些根據(jù)元素索引來操作集合的特有方法。7.2.1List接口簡介7.2List接口7.2List接口7.2.2ArrayList集合ArrayList是List接口的一個實現(xiàn)類,它是程序中最常見的一種集合在ArrayList內(nèi)部封裝了一個長度可變的數(shù)組對象,當(dāng)存入的元素超過數(shù)組長度時,ArrayList會在內(nèi)存中分配一個更大的數(shù)組來存儲這些元素,因此可以將ArrayList集合看作一個長度可變的數(shù)組ArrayList集合中大部分方法都是從父類Collection和List繼承過來的,其中add()方法和get()方法用于實現(xiàn)元素的存取。7.2List接口7.2.2ArrayList集合接下來通過一個案例來學(xué)習(xí)ArrayList集合如何存取元素7.2List接口7.2.3LinkedList集合List接口的另一個實現(xiàn)類LinkedList,克服了ArrayList集合在查詢元素時速度很快,但在增刪元素時效率較低的局限性。該集合內(nèi)部維護(hù)了一個雙向循環(huán)鏈表,鏈表中的每一個元素都使用引用的方式來記住它的前一個元素和后一個元素,從而可以將所有的元素彼此連接起來。當(dāng)插入一個新元素時,只需要修改元素之間的這種引用關(guān)系即可,刪除一個節(jié)點(diǎn)也是如此。7.2List接口7.2.3LinkedList集合LinkedList集合添加元素和刪除元素的過程如圖。7.2List接口7.2.3LinkedList集合LinkedList集合除了具備增刪元素效率高的特點(diǎn),還專門針對元素的增刪操作定義了一些特有的方法。7.2List接口7.2.3LinkedList集合接下來通過一個案例來學(xué)習(xí)這些方法的使用。7.2List接口7.2.4Iterator集合Iterator接口也是Java集合框架中的一員,但它與Collection、Map接口有所不同,Collection接口與Map接口主要用于存儲元素,而Iterator主要用于迭代訪問(即遍歷)Collection中的元素,因此Iterator對象也被稱為迭代器。通過一個案例來學(xué)習(xí)如何使用Iterator迭代集合中的元素。7.2.4Iterator集合7.2List接口需要特別說明的是,當(dāng)通過迭代器獲取ArrayList集合中的元素時,都會將這些元素當(dāng)做Object類型來看待,如果想得到特定類型的元素,則需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。7.2List接口7.2.4Iterator集合Iterator迭代器對象在遍歷集合時,內(nèi)部采用指針的方式來跟蹤集合中的元素,為了讓初學(xué)者能更好地理解迭代器的工作原理,接下來通過一個圖例來演示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ù)索引訪問容器中的元素,但它會自動遍歷容器中的每個元素。腳下留心1、foreach循環(huán)雖然書寫起來很簡潔,但在使用時也存在一定的局限性。當(dāng)使用foreach循環(huán)遍歷集合和數(shù)組時,只能訪問集合中的元素,不能對其中的元素進(jìn)行修改,接下來以一個String類型的數(shù)組為例來進(jìn)行演示。腳下留心2、在使用Iterator迭代器對集合中的元素進(jìn)行迭代時,如果調(diào)用了集合對象的remove()方法去刪除元素,會出現(xiàn)異常。接下來通過一個案例來演示這種異常。假設(shè)在一個集合中存儲了學(xué)校所有學(xué)員的姓名,由于一個名為Annie的學(xué)生中途轉(zhuǎn)學(xué),這時就需要在迭代集合時找出該元素并將其刪除,具體代碼如例程7-6所示。例程7-6在運(yùn)行時出現(xiàn)了并發(fā)修改異常ConcurrentModificationException。這個異常是迭代器對象拋出的,出現(xiàn)異常的原因是集合中刪除了元素會導(dǎo)致迭代器預(yù)期的迭代次數(shù)發(fā)生改變,導(dǎo)致迭代器的結(jié)果不準(zhǔn)確。為了解決上述問題,可以采用兩種方式:腳下留心第一種方式:從業(yè)務(wù)邏輯上講只想將姓名為Annie的學(xué)生刪除,至于后面還有多少學(xué)生我們并不關(guān)心,所以只需找到該學(xué)生后跳出循環(huán)不再迭代即可,也就是在第13行代碼下面增加一個break語句,代碼如下:在使用break語句跳出循環(huán)以后,由于沒有繼續(xù)使用迭代器對集合中的元素進(jìn)行迭代,因此,集合中刪除元素對程序沒有任何影響,不會出現(xiàn)異常。腳下留心第二種方式:如果需要在集合的迭代期間對集合中的元素進(jìn)行刪除,可以使用迭代器本身的刪除方法,將例程7-6中第13行代碼替換成it.remove()即可解決這個問題,代碼如下:7.2List接口7.2.6ListIterator接口Iterator迭代器提供了hasNext()方法和next()方法,通過這兩個方法可以實現(xiàn)集合中元素的迭代,迭代的方向是從集合中的第一個元素向最后一個元素迭代,也就是所謂的正向迭代。為了使迭代方式更加多元化,JDK中還定義了一個ListIterator迭代器,它是Iterator的子類,該類在父類的基礎(chǔ)上增加了一些特有方法。7.2List接口7.2.6ListIterator接口通過一個案例來學(xué)習(xí)ListIterator迭代器的使用:7.2List接口7.2.7Enumeration接口在JDK1.2以前還沒有Iterator接口的時候,遍歷集合需要使用Enumeration接口,它的用法和Iterator類似。JDK中提供了一個Vevtor集合,該集合是List接口的一個實現(xiàn)類,用法與ArrayList完全相同,區(qū)別在于Vector集合是線程安全的,而ArrayList集合是線程不安全的。在Vector類中提供了一個elements()方法用于返回Enumeration對象,通過Enumeration對象就可以遍歷該集合中的元素。7.2List接口7.2.7Enumeration接口通過一個案例來演示如何使用Enumeration對象遍歷Vector集合:7.3Set接口7.3.1Set接口簡介Set接口和List接口一樣,同樣繼承自Collection接口,它與Collection接口中的方法基本一致,并沒有對Collection接口進(jìn)行功能上的擴(kuò)充,只是比Collection接口更加嚴(yán)格了。與List接口不同的是,Set接口中元素?zé)o序,并且都會以某種規(guī)則保證存入的元素不出現(xiàn)重復(fù)。Set接口主要有兩個實現(xiàn)類,分別是HashSet和TreeSet。其中,HashSet是根據(jù)對象的哈希值來確定元素在集合中的存儲的位置,因此具有良好的存取和查找性能。TreeSet則是以二叉樹的方式來存儲元素,它可以實現(xiàn)對集合中的元素進(jìn)行排序。7.3Set接口7.3.2HashSet集合HashSet是Set接口的一個實現(xiàn)類,它所存儲的元素是不可重復(fù)的,并且元素都是無序的。當(dāng)向HashSet集合中添加一個對象時,首先會調(diào)用該對象的hashCode()方法來確定元素的存儲位置,然后再調(diào)用對象的equals()方法來確保該位置沒有重復(fù)元素。接下來通過一個案例來演示HashSet集合的用法:7.3Set接口7.3.2HashSet集合HashSet集合之所以能確保不出現(xiàn)重復(fù)的元素,是因為它在存入元素時做了很多工作。當(dāng)調(diào)用HashSet集合的add()方法存入元素時,首先調(diào)用當(dāng)前存入對象的hashCode()方法獲得對象的哈希值,然后根據(jù)對象的哈希值計算出一個存儲位置。如果該位置上沒有元素,則直接將元素存入,如果該位置上有元素存在,則會調(diào)用equals()方法讓當(dāng)前存入的元素依次和該位置上的元素進(jìn)行比較,如果返回的結(jié)果為false就將該元素存入集合,返回的結(jié)果為true則說明有重復(fù)元素,就將該元素舍棄。7.3Set接口7.3.2HashSet集合根據(jù)前面的分析不難看出,當(dāng)向集合中存入元素時,為了保證HasheSet正常工作,要求在存入對象時,需要重寫Object類中的hashCode()和equals()方法。例程7-9中將字符串存入HashSet時,String類已經(jīng)重寫了hashCode()和equals()方法。但是如果將Student對象存入HashSet,結(jié)果又如何呢?7.3Set接口7.3.2HashSet集合接下來針對例程7-10中的Student類進(jìn)行改寫,假設(shè)id相同的學(xué)生就是同一個學(xué)生,改寫后的代碼如例程7-11所示。7.3Set接口7.3.3TreeSet集合TreeSet是Set接口的另一個實現(xiàn)類,它內(nèi)部采用平衡二叉樹來存儲元素,這樣的結(jié)構(gòu)可以保證TreeSet集合中沒有重復(fù)的元素,并且可以對元素進(jìn)行排序。所謂二叉樹就是說每個節(jié)點(diǎn)最多有兩個子節(jié)點(diǎn)的有序樹,每個節(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集合二叉樹中元素的存儲過程:當(dāng)二叉樹中存入新元素時,新元素首先會與第1個元素(最頂層元素)進(jìn)行比較,如果小于第1個元素就執(zhí)行左邊的分支,繼續(xù)和該分支的子元素進(jìn)行比較。如果大于第1個元素就執(zhí)行右邊的分支,繼續(xù)和該分支的子元素進(jìn)行比較。如此往復(fù),直到與最后一個元素進(jìn)行比較時,如果新元素小于最后一個元素就將其放在最后一個元素的左子樹上,如果大于最后一個元素就將其放在最后一個元素的右子樹上。7.3Set接口7.3.3TreeSet集合假設(shè)向集合中存入8個元素,依次為13、8、17、17、1、11、15、25,如果以二叉樹的方式來存儲,在集合中的存儲結(jié)構(gòu)會形成一個樹狀結(jié)構(gòu)。7.3Set接口7.3.3TreeSet集合通過一個案例來演示TreeSet對元素的排序效果。7.3Set接口7.3.3TreeSet集合在TreeSet集合中存放Student類型對象時,如果Student類沒有實現(xiàn)Comparable接口,則Student類型的對象將不能進(jìn)行比較,這時,TreeSet集合就不知道按照什么排序規(guī)則對Student對象進(jìn)行排序,最終導(dǎo)致程序報錯。因此,為了在TreeSet集合中存放Student對象,必須使Student類實現(xiàn)Comparable接口。7.3Set接口7.3.3TreeSet集合定義的類沒有實現(xiàn)Comparable接口或者對于實現(xiàn)了Comparable接口的類而不想按照定義的compareTo()方法進(jìn)行排序,,例如,希望字符串可以按照長度來進(jìn)行排序,這時,可以通過自定義比較器的方式對TreeSet集合中的元素排序,即實現(xiàn)Comparator接口,在創(chuàng)建TreeSet集合時指定比較器。接下來通過一個案例來實現(xiàn)TreeSet集合中字符串按照長度進(jìn)行排序。7.4Map接口7.4.1Map接口簡介在現(xiàn)實生活中,每個人都有唯一的身份證號,通過身份證號可以查詢到這個人的信息,這兩者是一對一的關(guān)系。在應(yīng)用程序中,如果想存儲這種具有對應(yīng)關(guān)系的數(shù)據(jù),則需要使用JDK中提供的Map接口。Map接口是一種雙列集合,它的每個元素都包含一個鍵對象Key和值對象Value,鍵和值對象之間存在一種對應(yīng)關(guān)系,稱為映射。從Map集合中訪問元素時,只要指定了Key,就能找到對應(yīng)的Value。7.4Map接口7.4.1Map接口簡介首先了解一下Map接口中定義的一些通用方法。Map接口提供了大量的實現(xiàn)類,最常用的有HashMap和TreeMap,接下來針對這兩個類進(jìn)行詳細(xì)地講解。7.4Map接口7.4.2HashMap集合HashMap集合是Map接口的一個實現(xiàn)類,它用于存儲鍵值映射關(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中所有的鍵值對呢?有兩種方式可以實現(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中,還提供了一個values()方法,通過這個方法可以直接獲取Map中存儲所有值的Collection集合。7.4Map接口7.4.2HashMap集合從上面的例子可以看出,HashMap集合迭代出來元素的順序和存入的順序是不一致的。如果想讓這兩個順序一致,可以使用Java中提供的LinkedHashMap類,它是HashMap的子類,和LinkedList一樣也使用雙向鏈表來維護(hù)內(nèi)部元素的關(guān)系,使Map元素迭代的順序與存入的順序一致。7.4Map接口7.4.3TreeMap集合TreeMap集合是用來存儲鍵值映射關(guān)系的,其中不允許出現(xiàn)重復(fù)的鍵。在TreeMap中是通過二叉樹的原理來保證鍵的唯一性,這個TreeSet集合存儲的原理一樣,因此TreeMap中所有的鍵是按照某種順序排列的。7.4Map接口7.4.3TreeMap集合在使用TreeMap集合時,也可以通過自定義比較器的方式對所有的鍵進(jìn)行排序。7.4Map接口7.4.4Properties集合Map接口中還有一個實現(xiàn)類Hashtable,它在存取元素時速度很慢,目前基本上被HashMap類所取代。但Hashtable類有一個子類Properties在實際應(yīng)用中非常重要,Properties主要用來存儲字符串類型的鍵和值,在實際開發(fā)中,經(jīng)常使用Properties集合來存取應(yīng)用的配置項。假設(shè)有一個文本編輯工具,要求默認(rèn)背景色是紅色,字體大小為14px,語言為中文,其配置項應(yīng)該是下面的樣子:7.4Map接口7.4.4Properties集合在程序中可以使用Prorperties集合對這些配置項進(jìn)行存取,接下來通過一個案例來學(xué)習(xí):7.5JDK5.0新特性
——泛型7.5.1為什么使用泛型當(dāng)把一個對象存入集合后,集合會“忘記”這個對象的類型,將該對象從集合中取出時,這個對象的編譯類型就變成了Object類型。換句話說,我們在程序中無法確定一個集合中的元素到底是什么類型的。那么在取出元素時,如果進(jìn)行強(qiáng)制類型轉(zhuǎn)換就很容易出錯。7.5JDK5.0新特性
——泛型7.5.1為什么使用泛型為了解決這個問題,在Java中引入了“參數(shù)化類型(parameterizedtype)”這個概念,即泛型。它可以限定方法操作的數(shù)據(jù)類型,在定義集合類時,可以使用“<參數(shù)化類型>”的方式指定該類中方法操作的數(shù)據(jù)類型。上面這種寫法就限定了ArrayList集合只能存儲String類型元素,將改寫后的程序再次編譯,程序在編譯時期就會出現(xiàn)錯誤提示。7.5JDK5.0新特性
——泛型7.5.1為什么使用泛型程序編譯報錯的原因是修改后的代碼限定了集合元素的數(shù)據(jù)類型,ArrayList<String>這樣的集合只能存儲String類型的元素,程序在編譯時,編譯器檢查出Integer類型的元素與List集合的規(guī)定的類型不匹配,編譯不通過,這樣就可以在編譯時期解決錯誤,避免程序在運(yùn)行時期發(fā)生錯誤。接下來使用泛型再次對例程7-23進(jìn)行改寫7.5JDK5.0新特性
——泛型7.5.2自定義泛型那么泛型的作用是什么,在程序中是否能自定義泛型呢?7.5JDK5.0新特性
——泛型7.5.2自定義泛型從運(yùn)行結(jié)果可以看出,程序在編譯時期就報錯,這是因為在代碼第13行處存入了一個Integer類型的數(shù)據(jù),在代碼第14行處取出這個數(shù)據(jù)時,將該數(shù)據(jù)轉(zhuǎn)換成了String類型,出現(xiàn)了類型不匹配的錯誤。為了避免這個問題,就可以使用泛型,如果在定義一個類CachePool時使用<T>聲明參數(shù)類型,(T其實就是Type的縮寫,這里也可以使用其它字符,為了方便理解都定義為T),將save()方法的參數(shù)類型和get()方法的返回值類型都聲明為T,那么在存入元素時元素的類型就被限定了,容器中就只能存入這種T類型的元素,在取出元素時就無需進(jìn)行類型轉(zhuǎn)換。7.5JDK5.0新特性
——泛型7.5.2自定義泛型通過一個案例來看一下如何自定義泛型。7.6Collections工具類JDK提供了一個工具類專門用來操作集合,這個類就是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包中還提供了一個專門用于操作數(shù)組的工具類——Arrays。Arrays工具類提供了大量的靜態(tài)方法。
1、使用Arrays的sort()方法排序在前面學(xué)習(xí)數(shù)組時,要想對數(shù)組進(jìn)行排序就需要自定義一個排序方法,其實也可以使用Arrays工具類中的靜態(tài)方法sort()來實現(xiàn)這個功能,接下來通過一個案例來學(xué)習(xí)sort()方法的使用。7.7 Arrays工具類2、使用Arrays的binarySearch(Object[]a,Objectkey)方法查找元素程序開發(fā)中,經(jīng)常會在數(shù)組中查找某些特定的元素,如果數(shù)組中元素較多時查找某個元素就會非常繁瑣,為此,Arrays類中提供還了一個方法binarySearch(Object[]a,Objectkey)用于查找元素,接下來通過一個案例來學(xué)習(xí)該方法的使用。7.7 Arrays工具類2、使用Arrays的binarySearch(Object[]a,Objectkey)方法查找元素所謂二分法查找就是每次將指定元素和數(shù)組中間位置的元素進(jìn)行比較,從而排除掉其中的一半元素,這樣的查找是非常高效的。接下來通過一個圖例來演示二分法查找
溫馨提示
- 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初三升高一數(shù)學(xué)暑假銜接講義25講含答案(必修一內(nèi)容)3.5.4 恒成立和存在性問題含答案
- 2025年中考語文一模試卷
- 測評依據(jù)22課件
- 苯環(huán)親電取代的定位規(guī)律54課件
- 考研復(fù)習(xí)-風(fēng)景園林基礎(chǔ)考研試題附參考答案詳解【完整版】
- 考研復(fù)習(xí)-風(fēng)景園林基礎(chǔ)考研試題(真題匯編)附答案詳解
- 風(fēng)景園林基礎(chǔ)考研資料試題及參考答案詳解【培優(yōu)】
- 《風(fēng)景園林招投標(biāo)與概預(yù)算》試題A帶答案詳解ab卷
- 2023年上海市上海市松江區(qū)佘山鎮(zhèn)招聘社區(qū)工作者真題附詳細(xì)解析
- 2024年山東華興機(jī)械集團(tuán)有限責(zé)任公司人員招聘筆試備考題庫及參考答案詳解一套
- 《機(jī)械設(shè)計基礎(chǔ)》試題庫(主觀題及答案)
- 娛樂場所安全管理條例
- 2024年承包建設(shè)工程合同
- 2024年江蘇省無錫市中考地理試卷(附真題答案)
- 河南省鄭州市金水區(qū)2023-2024學(xué)年七年級(下)期末數(shù)學(xué)試卷(含答案)
- DBJ∕T 15-120-2017 城市軌道交通既有結(jié)構(gòu)保護(hù)技術(shù)規(guī)范
- 2024年陜西省西安市碑林區(qū)西北工業(yè)大學(xué)附屬中學(xué)丘成桐少年班選拔復(fù)試數(shù)學(xué)試題
- 超星爾雅學(xué)習(xí)通《社會科學(xué)方法論(南開大學(xué))》2024章節(jié)測試答案
- 文化墻設(shè)計制作安裝合同范本版
- 安恒信息:2024體育賽事網(wǎng)絡(luò)安全保障實踐藍(lán)皮書
- 擴(kuò)大基礎(chǔ)重力式橋臺綜合標(biāo)準(zhǔn)施工核心技術(shù)專業(yè)方案修改
評論
0/150
提交評論