由collection介面派生的兩個介面是list和set
。set
set介面同樣是collection介面的乙個子介面,它表示數學意義上的集合概念。set中不包含重複的元素,即set中不存兩個這樣的元素e1和e2,使得e1.equals(e2)為true。由於set介面提供的資料結構是數學意義上集合概念的抽象,因此它需要支援物件的新增、刪除,而不需提供隨機訪問。
按照定義,
set 介面繼承 collection 介面,而且它不允許集合中存在重複項。所有原始方法都是現成的,沒有引入新方法。具體的set 實現類依賴新增的物件的 equals()
方法來檢查等同性。
「集合框架」支援 set 介面兩種普通的實現:hashset 和treeset
。list 介面繼承了 collection 介面以定義乙個允許重複項的有序集合。該介面不但能夠對列表的一部分進行處理,還新增了面向位置的操作。
set和list對比:
set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。
list:和陣列類似,list可以動態增長,查詢元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。
map介面不是
collection
介面的繼承。而是從自己的用於維護鍵-值關聯的介面層次結構入手。按定義,該介面描述了從不重複的鍵到值的對映。
「集合框架」提供兩種常規的
map實現:
hashmap
和treemap
。和所有的具體實現一樣,使用哪種實現取決於您的特定需要。在
map中插入、刪除和定位元素,
hashmap
是最好的選擇。但如果您要按順序遍歷鍵,那麼
treemap
會更好。根據集合大小,先把元素新增到
hashmap
,再把這種對映轉換成乙個用於有序鍵遍歷的
treemap
可能更快。使用
hashmap
要求新增的鍵類明確定義了
hashcode()
實現。有了
treemap
實現,新增到對映的元素一定是可排序的。
Java集合類的總結
集合類庫考慮到 容納自己物件 的問題,並將其分割成兩個明確的概念 1 集合 collection 一組單獨的元素。乙個list 列表 必須按特定的順序容納元素,而乙個set 集 不可包含任何重複的元素。2 對映 map 一系列 鍵 值 對,如雜湊表身上的充分體現。map可以和陣列一樣,擴充到多維,可...
java集合類的特點
今天第一次去參加公司的招聘會,在面試中問到了有集合的特點,但是當時只答出來了一部分,不過還好,面試官對我的答案還挺滿意的,順利的通過了面試!得到了來之不易的實習機會!面試回學校後,通過翻閱書籍和查詢網路資源,對集合類的特點做了,如下總結!集合類的祖先介面分別是collection和map 而coll...
Java 集合類詳解
上述類圖中,實線邊框的是實現類,比如arraylist,linkedlist,hashmap等,折線邊框的是抽象類,比如abstractcollection,abstractlist,abstractmap等,而點線邊框的是介面,比如collection,iterator,list等。發現乙個特點,...