文稿說明集合類_第1頁
文稿說明集合類_第2頁
文稿說明集合類_第3頁
文稿說明集合類_第4頁
文稿說明集合類_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Collection是最基本的集合接口,JDK提供的類都繼承自Collection的“子接口”,如List和Set。所有實現(xiàn)Collection接口的類都必須提供兩個標準的構(gòu)造函數(shù):無參數(shù)的構(gòu)造函數(shù)和有一個Collection參數(shù)的構(gòu)造函數(shù)。前者用于創(chuàng)建一個空的Collection,后者用于創(chuàng)建一個新的Collection,允許用戶一個Collection。不論Collection的實際類型如何,它都支持一個itor()的方法,該方法返回一個迭代子,可逐一Collection中每一個元素。IItorit=tor();while(it.hasNext())Objectobj=it.next();}由Collection接口派生的兩個接口是List和SetMap類型,持有key-value形式的數(shù)據(jù)——“鍵值對”Collection子接口ListSetList是有序的Collection,確 元素特定的順序,這類似于Java的數(shù)組Set接口不保證元素的次序,存入Set的每個元素必須是唯一的。加入Set的Object必須定義equals()方法以確保對象的唯一性。ArrayList實現(xiàn)了可變大小的數(shù)組,允許對元素進行快速隨機,但是向List中間插入與移除元素的速度很慢(類似動態(tài)數(shù)組)。它允許所有元素,包括null。ArrayList沒有同步。如果數(shù)組長度LinkedList插入與刪除元素開銷不大,隨機相比則相對較慢(類似鏈表)??僧敹褩?、隊列和雙Vector是同步的。當一個Itor被創(chuàng)建而且正在被使用,另一個線程改變了Vector的狀態(tài),這時將拋出ConcurrentModificationException異常,因此必須捕獲該異常。比ArrayList慢。Stack繼承自VectorHashSet為快速查找而設(shè)計的Set(采用散列函數(shù))HashSet的對象必須定義hashCode()nullTreeSet保持次序的Set,底層 樹。使用它可以從Set中提取有序的序列LinkedHashSet:具有HashSet的查詢速度,且鏈表元素的順序(哈希函數(shù)+鏈表)。于是在使用迭代器遍歷Set時,結(jié)果會按元素插入的次序顯示。Hashtable是同步的,不允許null。繼承于陳舊的DictionaryHashMap是非同步的,速度比Hashtable快。允許null。HashMap繼承于 內(nèi)部Hash數(shù)組等于Hashtable不同。Map中插入、刪除和定位元素,HashMap是最好的選WeakHashMap是一種改進的HashMap,若一個key不再被外部 ,那么該key可以GCTreeMap中所有元素都保持固定的順序,如果需有序的結(jié)果你就應(yīng)該使用3 (對象的指針),而不是將對象信息Copy一根至數(shù)列末位置在多線程環(huán)境下,對于非同步的結(jié)合和Map,可以用類似ListlistCollections.synchronizedList(newLinkedList(...));或)Set只接受不重復的對象。HashSet提供了最快的查詢速度。而TreeSet沒必要再在新代碼里使用舊類庫留下來的Vector,Hashtable和Stack總結(jié)一:java的集合。map代表具有映射關(guān)系的集合;queue代表隊列集合。java集合類主要由兩個接口派生:CollectionMap,是集合框架的根接口。下面是其接equals方法返回的是true,set不會接受這兩個對象。hasCode()方法返回值也相等。HashSetnull元素。ListArraylistvectorlist類。ListLinkedList類。List接口,也實Dueue接口(雙向隊列)??梢援敵呻p向隊列使用,也可以當成棧使用。Queue用于模擬隊列的數(shù)據(jù)結(jié)構(gòu)。LinkedListArrayDueue是其兩個比較常用的實現(xiàn)Map用于保存具有映射關(guān)系的數(shù)據(jù)。Map接口有如下幾個常用的實現(xiàn)類:HashMapHashTable、TreeMap。TreeMap是基于樹對TreeMap中所有key進行排序。2、HashMapnullkeyvalue。java集合類的一般概述,下面就set、list、map三者之間的關(guān)系進行剖析。Set與Map的關(guān)系。MapkeysetMap集Set<K>keySet()key組成的set集合。由此可見,Map集合中的所keysetMapkeySet集合,這就MapSetMapkey-valueset集合,也可以實現(xiàn)從Set到Map之間的轉(zhuǎn)換。HashSetHashMap分別作為它們的實現(xiàn)類。兩者之間也挺相似的。HashSet的實現(xiàn)就是封裝了HashMap對象來元素。它們的本質(zhì)是一HashSetHashMap的關(guān)系,其實TreeMapTreeSet本質(zhì)也差不多,TreeSet底層也是依賴TreeMap實現(xiàn)。MapList的關(guān)系。把Mapkey-value分開來看,從另一個角度看,就可以把Map上看,Listkeyint型的Map。ArrayList和LinkedListArrayList是一種順序的線性表其底層是采用數(shù)組實現(xiàn)的,而LinkedList是鏈式的線性表。其本質(zhì)就是一個雙向鏈表。對于隨機比較頻繁的元ArrayList的總體性能還是優(yōu)于LinkedList。HashSetHashMap的性能選項。主要有兩個方面:容量和負載因子(尺寸/容量)。較低總結(jié)二:java集合總結(jié)java集合只能保存類型的數(shù)據(jù),是對象的Collectionsetlist集合類型的根接口add()如果增加重復元素,則增加失敗,返回false Map關(guān)系集的形式查看某個映射的內(nèi)容get(objectkey)key上面的值SetkeySet()keyset中ArrayListlist接口,用于表述長度可度的數(shù)組列表nulllist接口的所有功能外,還有以下方法ArrayList()10null的列表ArrayList()null的列表 Vector也實現(xiàn)了list接口,其描述的也是可變長度的對象數(shù)組是同步(線程安全的),arryalist是不同步vector()10vector容器 Stack繼承了vector,對應(yīng)了數(shù)據(jù)結(jié)構(gòu)中的“后進先出”和操作數(shù)據(jù)結(jié)象棧 tor接口描述的是以統(tǒng)一方式對各種集合元素遍歷/迭代工具,也稱"迭代器"hasNext()true HashSet類實現(xiàn)了set接口,描述典型的set集合結(jié)構(gòu) TreeSet類也實現(xiàn)了Set,它描述的是set的一種變體——可以實現(xiàn)排序功能的集合將對象元素添加到TreeSet集中時會自動按照某種比較規(guī)則將其插入到有序的對象序列中以保證TreeSet集合元素組成的對象序列時刻按照“升序”排列 Comparable接口中定義的compareTo()方法,實現(xiàn)對整體排序所需的比較邏輯 HashMap實現(xiàn)了Map接口,基于哈希表的實現(xiàn)了前述的映射集合結(jié)構(gòu)相關(guān)實例請看 Hashtablenull,是同步的,即線程安全的,效率相對要hashmap完全一樣Enumeration接口:作用與i 子類properties)且不支持集合元素的移除操作些接口不是很常用,這里就不給實例了Collections定義了多種集合操作的方法,實現(xiàn)對集合元素排序,取極值,批是拷貝,集合結(jié)copy(List<?superT>dest,List<?extendsT>src)將所有元素從一個列表到另一frequency(Collection<?>c,Objecto)collection中等于指定對象的元素數(shù)max(Collection<?extendsT>coll)collection相關(guān)實例請查看 Arrays類定義了多種數(shù)組操作方法,實現(xiàn)了對數(shù)組元素排序,填充,轉(zhuǎn)換為列表或字符串形sort()byte型數(shù)組按數(shù)字升序進行排序總結(jié)三:java集合總結(jié)1、HashSet:equalstrue,hashCode返回相同的整數(shù);哈希表;SortedSetSet排序?qū)崿F(xiàn)類:TreeSet:二叉樹實現(xiàn)的;看API:<E>泛型:表示一個對象; 只需實現(xiàn)i 只有實現(xiàn)了 HashMap:鍵值對,keyvalue可以重復;keyHashSet;value對應(yīng)著放;只提供key的;HashMap線程不安全的,允許nullkeyvalue;Hashtablenullkeyvalue;TreeMap:key排好序的Map;keyTreeSet,valuekey;keyComparable接口或TreeMap有自己的構(gòu)造器;HashSet:remove(Objecto)OHashcodeequals是否相等,定義一個Map;key是課程名稱,valueIntegernull對象都可以用作鍵或值。為了成功地在哈希表中和獲取對象,用作鍵的對象必須實現(xiàn)hashCodeequals法。 C盤下建了一個名為yy.dat執(zhí)行以下程序,輸出heheProperties可以很方便的解析配置文件五、兩個工具類ArraysCollectionscollection上進行操作的靜態(tài)方法HashMapEnumeration,遺留集合使用枚舉接口來遍歷元素,它有兩個方法和 Stack,繼承自Vector,實現(xiàn)了棧的功能,提供了push()pop()get(i)set(i)clear(i)Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排List,Set,MapCollection接口?List,Set是,Map不是小的列表,比較適合構(gòu)建、和操作任何類型對象的元素列表。List適用于按數(shù)值索引Map提供了一個更通用的元素方法。Map

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論