無論是批評的,贊揚的,指著的都請EMAIL給我,你的建議將是我前進(jìn)的動力! 聯(lián)系我
集合框架是提供管理對象集合的接口和類,它包含3個組件:
1.接口 :表示集合的抽象數(shù)據(jù)類型 a.Collection接口:是構(gòu)建集合框架的根。 b.Set接口:擴展了Collection接口,它不允許有重復(fù)元素。 c.List接口:擴展了Collection接口,一些集合具有順序,通常被成為列表。 d.Map接口:沒有繼承Collection接口,具有鍵和值的對象。不能包含重復(fù)鍵,但可以包含重復(fù)值。2.類 :用于存儲集合的實際數(shù)據(jù)對象 a.ArrayList :優(yōu)點是可以動態(tài)添加數(shù)據(jù)元素,遍歷效率比LiskedList快。 b.LinkedList:這是一種鏈表的數(shù)據(jù)結(jié)構(gòu),它和數(shù)組的區(qū)別在于數(shù)組是一段連續(xù)的內(nèi)存空間,而鏈表可以是不連續(xù)的,這一點就說明了鏈表對內(nèi)存空間的合理利用。看下單向鏈表的結(jié)構(gòu)圖:頭節(jié)點先指向第1個節(jié)點,然后節(jié)點1的指針域又指向下一個節(jié)點,最后由于節(jié)點3后面沒元素了,就為null。試想一下當(dāng)對鏈表進(jìn)行插入刪除的時候只需要將指針域的指向改變一下就可以達(dá)到所需效果,而數(shù)組插入刪除的時候需要將插入或刪除的位置后所有元素后移或前移,很顯然在算法上插入刪除操作鏈表要比數(shù)組快。說了這么多數(shù)組與鏈表的區(qū)別,下面來看看LinkedList這個類怎么用:
c.HashSet:一看就知道是哈西散列表的集合類,不能有重復(fù)元素。例子免了,比較簡單的,上段代碼我已經(jīng)后悔寫了,用過java的都知道。 d.TreeSet:將元素儲存在樹中,適合快速檢索大量排序信息。 e.HashMap:HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。 Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。
3.算法 :用于操作集合,并被定義為Collections類中的靜態(tài)方法,給個例子就很好理解了
還有N多方法,自己去試試把。
其實還有很多集合類和接口:最后總結(jié)下結(jié)合框架的優(yōu)點(抄書):1.集合框架提供了一組可用的集合接口2.提供了有效的數(shù)據(jù)結(jié)構(gòu)和算法,減少了編程量3.使我們方便的擴展集合4.設(shè)計新API的工作降到最少5.接口算法的可重用性提高了軟件的可重用性
posted on 2005-08-19 06:55 瘋流成性 閱讀(413) 評論(0) 編輯 收藏 所屬分類: j2se
Powered by: BlogJava Copyright © 瘋流成性