1. 程式人生 > >面試中常考的幾個集合類(java)

面試中常考的幾個集合類(java)

這裡首先借用下網上的一張集合介面關係圖 下面簡述幾種常用集合的區別,還有部分不常用集合類未描述 Iterable迭代器介面,這是Collection類的父介面。實現這個Iterable介面的物件允許使用foreach進行遍歷,也就是說,所有的Collection集合物件都具有"foreach可遍歷性"。這個Iterable介面只 有一個方法: iterator()。它返回一個代表當前集合物件的泛型<T>迭代器,用於之後的遍歷操作 List介面: Collection介面子介面,單列集合,有序的,可重複 ArrayList:陣列結構,執行緒不安全 ,查詢快 LinkedList:連結串列結構,執行緒不安全,增刪速度快 Vector:陣列結構,執行緒安全同步的,速度慢,但後版本被ArrayList所代替 Set介面:
Collection介面子介面,單列集合,無序的,不可重複,需要迭代器(Iterator)來查詢結果 HashSet:執行緒不安全,存取快 TreeSet:執行緒不安全,可排序(二叉樹形式存在)TreeSet會呼叫集合元素的compareTo(Object obj)方法來比較元素之間的大小關係,然後將集合元素按升序排序,即自然排序。 Map介面: Map沒有繼承Collection介面,Map集合類Key-value 形式存在 不可重複,雙列集合 HashMap:無序的,執行緒安全,訪問快,不同步 HashTable:無序的,安全,同步,讀取訪問比HashMap慢,寫入速度快 LinkedHashMap:有序的,雜湊雙向連結串列儲存,遍歷慢(容量無關,資料有關) TreeMap:預設鍵升序排序 Queue 佇列
介面 Queue用於模擬"佇列"這種資料結構(先進先出 FIFO)。佇列的頭部儲存著佇列中存放時間最長的元素,佇列的尾部儲存著佇列中存放時間最短的元素。新元素插入(offer)到佇列的尾部,    訪問元素(poll)操作會返回佇列頭部的元素,佇列不允許隨機訪問佇列中的元素。結合生活中常見的排隊就會很好理解這個概念 Collection與Collections的區別: Collection是集合類介面的父級介面,Collections是集合的輔助工具類,包含有新增,刪除等操作方法