set, list 和map知識總結

2022-09-16 12:54:12 字數 1285 閱讀 9620

set就是集,無序,不可重複

舉例:hashset,linkedhashset

map是對映,通過鍵值對儲存,無序,不可重複

舉例:hashmap,hashtable,linkedhashmap

在實際的使用過程中,list常用來處理序列,set用來處理集合,map用來處理鍵對值的資料。

linkedhashmap和hashmap的比較使用

j**a為資料結構中的對映定義了乙個介面j**a.util.map;它有四個實現類,分別是hashmap hashtable linkedhashmap 和treemap.

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

hashmap

是乙個最常用的map,它根據鍵的hashcode值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度,遍歷時,取得資料的順序是完全隨機的。

hashmap最多隻允許一條記錄的鍵為null;允許多條記錄的值為

null;hashmap不支援執行緒的同步,即任一時刻可以有多個執行緒同時寫hashmap;可能會導致資料的不一致。如果需要同步,可以用

collections的synchronizedmap方法使hashmap具有同步的能力,或者使用concurrenthashmap。

hashtable與 hashmap類似,它繼承自dictionary類,不同的是:它不允許記錄的鍵或者值為空;它支援執行緒的同步,即任一時刻只有乙個執行緒能寫hashtable,因此也導致了 hashtable在寫入時會比較慢。

linkedhashmap

是hashmap的乙個子類,儲存了記錄的插入順序,在用iterator遍歷linkedhashmap時,先得到的記錄肯定是先插入的.也可以在構造

時用帶引數,按照應用次數排序。在遍歷的時候會比hashmap慢,不過有種情況例外,當hashmap容量很大,實際資料較少時,遍歷起來可能會比

linkedhashmap慢,因為linkedhashmap的遍歷速度只和實際資料有關,和容量無關,而hashmap的遍歷速度和他的容量有關。

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

一般情況下,我們用的最多的是hashmap,在map 中插入、刪除和定位元素,hashmap

是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那麼treemap會更好。如果需要輸出的順序和輸入的相同,那麼用linkedhashmap

可以實現,它還可以按讀取順序來排列.

Map相關知識總結

map主要用於儲存健值對,根據鍵得到值,因此不允許鍵重複 重複了覆蓋了 但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度,遍歷時,取得資料的順序是完全隨機的。hashmap最多隻允許一條記錄的鍵為null 允許多...

STL 中map 和 set 的知識點總結

stl中的容器有順序容器 vector,list,deque 關聯容器 map,set 還有一些其他容器。根據不同的場合選擇不同的容器,會有意想不到的收穫。set是單詞set 集合 的意思 map和set內部的元素不可以重複,這一點不同於multimap和multiset。map 和 set使用相同...

Set和Map的小知識

hashset,hashmap查詢快 treeset,treemap儲存順序為公升序 linkedhashset,linkedhashmap 儲存順序為插入的順序 hashset的部分原始碼 構造器初始化這個map private transient hashmapmap set中組合了乙個map的...