Java - 集合框架 - 整理

/****************集合框架關係圖***************/




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


/****************集合框架簡圖***************/




|--Collection接口: 頂層接口,聲明瞭集合的核心方法。(單列集合)


——|-- List(清單) 接口: 有序、有索引、可重複。

————|--VectorArrayList相似。支持同步。

————|--ArrayList(數組表) 不同步,替代Vertor,查詢快。

————|--LinkedList(鏈表) 不同步,增刪快。

可使用ListIterator(列表迭代器)提供雙向遍歷next() previous(),可刪除、替換、增加元素。  


——|--Set(集)接口: 無序、不可重複

————|--HashSet內部數據結構哈希表,不同步

——————|-- Hash表是一種數據結構,用來查找對象。Hash表爲每個對象計算出一個整數,稱爲Hash Code(哈希碼)。

HashSet 通過 hashCode 和 equals 來判斷數據唯一。先看哈希碼是否相等,不相等直接存入。相等再看equals,返回false纔可以被存入。

————|--TreeSet可以對 Set 集合中的元素進行排序,不同步。(元素必須具備比較性,或集合必須有比較方法)

——————|--TreeSet儲存的元素要實現Comparable。或者TreeSet 自定義比較器Comparator。不然。。。


集合的一些技巧:

——需要唯一嗎?

————需要: Set

————需要制定順序:

——————需要: TreeSet

——————不需要:HashSet

——————但是想要一個和存儲致的順序(有序 ):LinkedHashSet

——不需要唯一

————需要頻繁增刪嗎?

——————需要: LinkedList

——————不需要: ArrayList

看到ArrayList:  就要想到數組,查詢快有角標

看到LinkedList:就要想到鏈表,就要想增刪快,add  get  remove + frist  last 方法

看到HashSet:    就要想到哈希表,就要想到唯一性,元素需覆蓋hashcode 和 equals 方法

看到TreeSet:   就要想到二叉樹,就要想到排序,就要想到兩個接口Comparable和Comparator


|--Map接口:(映射表)(雙列集合)

——|--Hashtable: 內部結構哈希表,同步,不能null鍵,不能null值。

————|--Properties:用來存儲鍵值對型的配置文件的信息,可以和 IO 技術相結合。

——|--HashMap內部結構哈希表,不同步,可以能null鍵,可以null值。

————|--LinkedHashMap-擴展HashMap,對返回集合迭代時,維護插入順序

——|--TreeMap:內部結構是二叉樹,不同步,可以對 Map 集合中的鍵進行排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章