資源描述:
《集合類(lèi)操作優(yōu)化經(jīng)驗(yàn)總結(jié)-java開(kāi)發(fā)java經(jīng)驗(yàn)技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、集合類(lèi)操作優(yōu)化經(jīng)驗(yàn)總結(jié)-編程開(kāi)發(fā)技術(shù)集合類(lèi)操作優(yōu)化經(jīng)驗(yàn)總結(jié)原文出處:IBM?周明耀在實(shí)際的項(xiàng)目開(kāi)發(fā)中會(huì)冇很多的對(duì)象,如何高效、方便地管理對(duì)象,成為影響程序性能與可維護(hù)性的重要環(huán)節(jié)。Java提供了集合框架來(lái)解決此類(lèi)問(wèn)題,線性表、鏈表、哈希表等是常用的數(shù)據(jù)結(jié)構(gòu),在進(jìn)行Java開(kāi)發(fā)時(shí),JDK已經(jīng)為我們捉供了一系列相應(yīng)的類(lèi)來(lái)實(shí)現(xiàn)基本的數(shù)據(jù)結(jié)構(gòu),所有類(lèi)都在訂這個(gè)包里,清單1描述了集合類(lèi)的關(guān)系。清單1.集合類(lèi)之間關(guān)系Collection卜List
2、[-LinkedList
3、卜ArrayList
4、「Vector
5、LStackLSetMap(-Hashtable(
6、-HashMapLWcakllashMap本文講的就是集合框架的使用經(jīng)驗(yàn)總結(jié),注意,本文所冇代碼基于JDK7O集合接口Collection接口Collection是最基木的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素、支持對(duì)元素進(jìn)行排序,另一些則不行。JDK不提供直接繼承口Collection的類(lèi),JDK提供的類(lèi)都是繼承自Collection的子接口,如List和Set。所有實(shí)現(xiàn)Collection接口的類(lèi)都必須提供兩個(gè)標(biāo)準(zhǔn)的構(gòu)造函數(shù),無(wú)參數(shù)的構(gòu)造函
7、數(shù)用于創(chuàng)建一個(gè)空的Collection,有一個(gè)Collection參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)新的Collection,這個(gè)新的Collection與傳入的Collection冇相同的元素,后一個(gè)構(gòu)造函數(shù)允許用戶(hù)復(fù)制一個(gè)Collectiono如何遍歷Collection中的每一個(gè)元素?不論Collection的實(shí)際類(lèi)型如何,它都支持一個(gè)iterator()的方法,該方法返冋一個(gè)迭代子,使用該迭代子即可逐一訪問(wèn)Collection中每一個(gè)元素。典型的用法如下:Iteratorit=collection.iteratorO;//獲得一個(gè)迭代子while(
8、it.hasNext()){Objectobj=it.next();//得到下一個(gè)元素Collection接口派生的兩個(gè)接口是List和Set。Collection接口提供的主要方法:1.booleanadd(Objecto)添加對(duì)彖到集合;2.booleanremove(Objecto)刪除指定的對(duì)象;3.intsize()返回當(dāng)前集合中元索的數(shù)量;4.booleancontains(Objecto)查找集合屮是否有指定的對(duì)象;5.booleanisEmptyO判斷集合是否為空;6.Iteratoriterator()返回一個(gè)迭代器;7.bool
9、eancontainsAll(Collectionc)査找集合中是否有集合C中的丿匸素;8.booleanaddAll(Collectionc)將集合C中所有的元素添加給該集合;9.voidclear()刪除集合小所有元素;10.voidremoveAlKCollectionc)從集合中刪除C集合中也有的元素;11.voidretainAll(Collectionc)從集合中刪除集合C中不包含的元素。List接口List是冇序的Collection,使用此接口能夠精確的控制每個(gè)元索插入的位置。用戶(hù)能夠使用索引(元素在List中的位置,類(lèi)似于數(shù)組卜?
10、標(biāo))來(lái)訪問(wèn)List中的元素,這類(lèi)似于Java的數(shù)組。和下文要提到的Set不同,List允許有相同的元素。除了具有Collection接口必備的iterator()方法外,List還提供一個(gè)listiterator()方法,返冋一個(gè)Listiterator接口。和標(biāo)準(zhǔn)的Iterator接口相比,Listltcrator多了一些add()Z類(lèi)的方法,允許添加、刪除、設(shè)定元索、向前或向后遍歷等功能。實(shí)現(xiàn)List接口的常用類(lèi)有LinkedList,ArrayList,Vector和Stack等。List接口提供的主要方法:1.voidadd(intinde
11、x,Objectelement)在指定位置上添加一個(gè)對(duì)象;2.booleanaddAll(intindex,Collectionc)將集合C的元素添加到指定的位置;3.Objectget(intindex)返回List中指定位置的元素;4.intindexOf(Objecto)返回第一個(gè)岀現(xiàn)元素0的位置;5.Objectremoveint(intindex)刪除指定位置的元索;6.Objectset(intindex,Objectelement)用元素element取代位置index上的元素,返回被取代的元索。Map接口Map沒(méi)有繼承Collect
12、ion接口。Map捉供Key到Value的映射,一個(gè)Map屮不能包含相同的Key,每個(gè)Key只能映射一個(gè)Value。Map