昨天接到乙個**面試,有問道關於集合類的知識,剛好我自己對於這方面梳理的結構不是特別好,想要寫一篇部落格來總結關於這方面的內容。
1.list:
a.arraylist底層是用動態陣列實現的,我個人比較喜歡用,取值的效率比較好
b.linkedlist底層是基於鍊錶實現的,對於一些經常增刪的程式比較適合
2.set
a.treeset:基於treemap實現,插入的時候插入的只有key,呼叫的是map.put()
插入時會自動排序,iterator()返回的是公升序的迭代器
descendingiterator()返回的是降序迭代器
subset()返回子集
b.hashset基於hashmap實現,查重十分方便,輸出不定序 contains(object ob)函式查重
3.map:在容器中的每一項都是乙個map.entry
a.hashmap:基於雜湊表實現(也就是每一項是鍊錶的陣列),插入查詢開銷小,不是執行緒安全的(hashtable是但是遺留類,concurrenthashmap是執行緒安全的)
b.treemap:基於紅黑樹實現,得到的結果key經過排序
c.linkedhashmap:基於鍊錶的鍊錶實現,迭代訪問時速度較快
Java集合常用類
集合的兩個頂級介面分別為 單列集合collection 和 雙列集合map 單列集合 collection 和雙列集合 map 特點如下 一 collection 單列集合類的根介面,有兩個重要的子介面,即 list 和 set set 介面特點是元素無序並且不可重複,主要實現類有 hashset ...
JAVA集合類總結
所有的集合類都是先iterator介面,意味著所有的集合類都是可以迭代輸出的。以collection為介面的元素集合型別,以map為介面的對映集合型別 所有集合的實現類都不是直接實現集合類介面,而是都繼承乙個相應的抽象類。list list介面提供了多個實現的子類,其實現類有arraylist,li...
Java常用集合總結
1.list 元素是有序的,可以重複,因為有索引 arraylist 陣列結構,特定 查詢快,增刪慢,初始長度是10,50 延長 linkedlist 鍊錶資料結構,特點 增刪快,查詢慢 vector 陣列結構,執行緒同步,被arraylist代替,初始長度是10,100 延長,列舉是vector特...