標籤:collection java 介面
★儲存物件:數組、集合
對象多了用集合存,資料多了用對象存
★數組和集合的不同?
★集合架構:是不斷向上抽取共性出來的
Collection架構中包含了大量集合介面以及這些介面的實作類別和操作它們的演算法(比如排序、迭代、尋找等等),collection主要提供了List(列表)、Queue(隊列)、Set(集合)、Stack(棧)和Map(映射表,用於存放索引值對)等資料結構,其中List、Queue、Set、Stack都繼承自collection介面。
為什麼會出現這麼多容器呢?
因為每一個容器對資料的儲存方式都有不同,這個儲存方式稱之為:資料結構。每個容器因為資料結構的不同做了單獨的劃分,因為它們的結構特點不一樣。
Collection位於整個集合架構的頂端,是整個集合架構的基礎,它裡面儲存一組對象表示不同類型的Collections,它的作用只是提供維護一組對象的基本介面。
Collection中最常用的三個介面是List、Set、Map。
List又稱為有序的Collection,它按照對象的進入順序儲存對象,所以它能對列表中每個元素的位置進行精準的判斷,方便了插入刪除等操作對元素位置判斷的控制,同時它也可以儲存重複的對象。
Set表示集合,最主要的特點是集合中的元素不能重複,所以存入Set的每個元素都必須定義equals()方法來確保對象的唯一性。
TreeSet實現了SortedSet介面,因此TreeSet容器中元素是有序的。
Map提供了一個從鍵映射到值的資料結構,用來儲存索引值對,其內的值是可以重複的,但是鍵必須是唯一的(和映射的概念相同,可以一對多但不能多對一)。
雖然以上列舉的類都可以實現Map介面,但是它們的執行效率不同
HashMap是基於散列表來實現的,採用對象的HashCode可以實現快速查詢;
LinkHashMap採用列表來維護內部的順序;
TreeMap是基於紅/黑樹狀結構的資料結構來實現的,內部元素是按序排列的。
Map是一個介面,所以不能直接執行個體化Map對象,但是可以執行個體化實現Map介面的類的對象,如:Map hera = new HashMap();
Collection架構類圖
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/5B/92/wKiom1UL4p-AcisaAAIv-teA5vA381.jpg" title="20120921030244923.png" alt="wKiom1UL4p-AcisaAAIv-teA5vA381.jpg" />
圖片連結:http://www.2cto.com/uploadfile/2012/0921/20120921030244923.png
【java】Collection架構