資源描述:
《JAVA集合類匯總.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應用文檔-天天文庫。
1、JAVA集合類匯總 一、集合與數(shù)組 數(shù)組(可以存儲基本數(shù)據(jù)類型)是用來存現(xiàn)對象的一種容器,但是數(shù)組的長度固定,不適合在對象數(shù)量未知的情況下使用?! 〖希ㄖ荒艽鎯ο?,對象類型可以不一樣)的長度可變,可在多數(shù)情況下使用?! 《哟侮P(guān)系 如圖所示:圖中,實線邊框的是實現(xiàn)類,折線邊框的是抽象類,而點線邊框的是接口 Collection接口是集合類的根接口,Java中沒有提供這個接口的直接的實現(xiàn)類。但是卻讓其被繼承產(chǎn)生了兩個接口,就是Set和List。Set中不能包含重復的元素。List是一個有序的集合,可以包含重復的元素,提供了按索引訪問的方式。
2、 Map是Java.util包中的另一個接口,它和Collection接口沒有關(guān)系,是相互獨立的,但是都屬于集合類的一部分。Map包含了key-value對。Map不能包含重復的key,但是可以包含相同的value?! terator,所有的集合類,都實現(xiàn)了Iterator接口,這是一個用于遍歷集合中元素的接口,主要包含以下三種方法: 1.hasNext()是否還有下一個元素?! ?.next()返回下一個元素?! ?.remove()刪除當前元素。 三、幾種重要的接口和類簡介 1、List(有序、可重復) List里存放的對象是有序的,同時也
3、是可以重復的,List關(guān)注的是索引,擁有一系列和索引相關(guān)的方法,查詢速度快。因為往list集合里插入或刪除數(shù)據(jù)時,會伴隨著后面數(shù)據(jù)的移動,所有插入刪除數(shù)據(jù)速度慢?! ?、Set(無序、不能重復) Set里存放的對象是無序,不能重復的,集合中的對象不按特定的方式排序,只是簡單地把對象加入集合中?! ?、Map(鍵值對、鍵唯一、值不唯一) Map集合中存儲的是鍵值對,鍵不能重復,值可以重復。根據(jù)鍵得到值,對map集合遍歷時先得到鍵的set集合,對set集合進行遍歷,得到相應的值。 對比如下: 四、遍歷 在類集中提供了以下四種的常見輸出方式:
4、1)Iterator:迭代輸出,是使用最多的輸出方式。 2)ListIterator:是Iterator的子接口,專門用于輸出List中的內(nèi)容。 3)foreach輸出:JDK1.5之后提供的新功能,可以輸出數(shù)組或集合?! ?)for循環(huán) 代碼示例如下: for的形式:for(inti=0;i《arr.size();i++){。。.} foreach的形式:for(int i:arr){。。.} iterator的形式: Iteratorit=arr.iterator(); while(it.hasNext()){objecto=it.ne
5、xt();。。.} 五、ArrayList和LinkedList ArrayList和LinkedList在用法上沒有區(qū)別,但是在功能上還是有區(qū)別的。LinkedList經(jīng)常用在增刪操作較多而查詢操作很少的情況下,ArrayList則相反?! ×?、Map集合 實現(xiàn)類:HashMap、Hashtable、LinkedHashMap和TreeMap HashMap HashMap是最常用的Map,它根據(jù)鍵的HashCode值存儲數(shù)據(jù),根據(jù)鍵可以直接獲取它的值,具有很快的訪問速度,遍歷時,取得數(shù)據(jù)的順序是完全隨機的。因為鍵對象不可以重復,所以HashM
6、ap最多只允許一條記錄的鍵為Null,允許多條記錄的值為Null,是非同步的 Hashtable Hashtable與HashMap類似,是HashMap的線程安全版,它支持線程的同步,即任一時刻只有一個線程能寫Hashtable,因此也導致了Hashtale在寫入時會比較慢,它繼承自Dictionary類,不同的是它不允許記錄的鍵或者值為null,同時效率較低?! oncurrentHashMap 線程安全,并且鎖分離。ConcurrentHashMap內(nèi)部使用段(Segment)來表示這些不同的部分,每個段其實就是一個小的hashtable,它
7、們有自己的鎖。只要多個修改操作發(fā)生在不同的段上,它們就可以并發(fā)進行?! inkedHashMap LinkedHashMap保存了記錄的插入順序,在用Iteraor遍歷LinkedHashMap時,先得到的記錄肯定是先插入的,在遍歷的時候會比HashMap慢,有HashMap的全部特性。 TreeMap TreeMap實現(xiàn)SortMap接口,能夠把它保存的記錄根據(jù)鍵排序,默認是按鍵值的升序排序(自然順序),也可以指定排序的比較器,當用Iterator遍歷TreeMap時,得到的記錄是排過序的。不允許key值為空,非同步的; map的遍歷 第一種
8、:KeySet() 將Map中所有的鍵存入到set集合中。因為s