Java 集合類學習

2021-07-23 17:20:14 字數 1662 閱讀 7459

繼承關係圖

1、list(有序、索引、可重複)

list裡存放的物件是有序的,同時也是可以重複的,list關注的是索引,擁有一系列和索引相關的方法。

arraylist(陣列、快速訪問)

arraylist可以理解成乙個可增長的陣列,因此可以通過索引快速訪問。

linkedlist(鍊錶、快速插入、刪除)

linkedlist是雙向鏈結的,擁有鍊錶的快速插入和刪除的特性。

vector

arraylist的執行緒安全版,但是效能較低。

2、set(唯

一、無序)

hashset

hashset是通過hashmap實現的,set使用了map中的key,因此set具有唯一性。而hashmap中通過hashcode和 equals方法來確保唯一。 hashset的contains和remove依據都是hashcode方法,如果該方法返回值相同,才判斷 equals方法。

treeset

treeset是通過treemap實現的,能進行排序。

3、map(鍵值對、鍵唯一)

map主要用於儲存健值對,根據鍵得到值,因此不允許鍵重複(重複了覆蓋了),但允許值重複。

hashmap

hashmap 是乙個最常用的map,它根據鍵的hashcode值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度,遍歷時,取得資料的順序是完全隨機的。hashmap最多隻允許一條記錄的鍵為null;允許多條記錄的值為null

hashtable

hashtable與hashmap類似,是hashmap的執行緒安全版,它繼承自dictionary類,不同的是:它不允許記錄的鍵或者值為空,同時效率較低。

linkedhashmap

linkedhashmap儲存了記錄的插入順序,在用iterator遍歷linkedhashmap時,先得到的記錄肯定是先插入的.也可以在構造時 用帶引數,按照應用次數排序。在遍歷的時候會比hashmap慢,不過有種情況例外,當hashmap容量很大,實際資料

較少時,遍歷起來可能會比linkedhashmap慢,因為linkedhashmap的遍歷速度只和實際資料有關,和容量無關,而hashmap的遍歷速度和他的容量有關。

treemap

treemap實現sortmap介面,能夠把它儲存的記錄根據鍵排序,預設是按鍵值的公升序排序,也可以指定排序的比較器,當用iterator遍歷treemap時,得到的記錄是排過序的。

一般情況下,我們用的最多的是hashmap,hashmap裡面存入的鍵值對在取出的時候是隨機的,它根據鍵的hashcode值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。在map中插入、刪除和定位元素,hashmap 是最好的選擇。

treemap取出來的是排序後的鍵值對。但如果您要按自然順序或自定義順序遍歷鍵,那麼treemap會更好。

linkedhashmap是hashmap的乙個子類,如果需要輸出的順序和輸入的相同,那麼用linkedhashmap可以實現。

java集合學習之 常用集合類

collection介面下包括 list結構的集合類 arraylist類,linkedlist類,vector類,stack類 set結構的集合類 hashset類,treeset類,linkedhashset實現類 queue結構的集合 priorityqueue類 map介面下包括 map結構...

java集合類庫學習記錄 LinkedList

1.介紹 linkedlist是list 介面的鏈結列表實現。實現所有可選的列表操作,並且允許所有元素 包括null 擴充套件了abstractsequentiallist抽象類,實現了deque和queue介面。這些操作允許將鏈結列表用作堆疊 佇列和雙端佇列。2.abstractsequentia...

Java 集合類詳解

上述類圖中,實線邊框的是實現類,比如arraylist,linkedlist,hashmap等,折線邊框的是抽象類,比如abstractcollection,abstractlist,abstractmap等,而點線邊框的是介面,比如collection,iterator,list等。發現乙個特點,...