hashset, hashmap查詢快;
treeset, treemap儲存順序為公升序;
linkedhashset, linkedhashmap 儲存順序為插入的順序;
hashset的部分原始碼
//構造器初始化這個map
private transient hashmapmap;
//set中組合了乙個map的引用,迭代器底層是使用了map的key集合
public iteratoriterator()
//底層使用map的put方法,value始終是乙個同乙個object引用,不太懂為什麼要這樣設計
private static final object present = new object();
public boolean add(e e)
//得到集合大小,實際上是底層使用的map的大小
public int size()
//剩下的方法基本都是使用map的方法
public boolean contains(object o)
public boolean isempty()
public boolean remove(object o)
STL 中map 和 set 的知識點總結
stl中的容器有順序容器 vector,list,deque 關聯容器 map,set 還有一些其他容器。根據不同的場合選擇不同的容器,會有意想不到的收穫。set是單詞set 集合 的意思 map和set內部的元素不可以重複,這一點不同於multimap和multiset。map 和 set使用相同...
Map和Set的常用方法
map.entry即 map 中定義的 k 型別的 key 和 v 型別的 value 的對映關係的類。k getkey 返回 entry 中的 key v getvalue 返回 entry 中的 value map 的常見方法 v get object key 返回 key 對應的 value ...
map和set的使用和原理
我們學習過順序容器如vecor,list等,它們中的元素是按照在容器中的位置來順序儲存和訪問的。而接下來要學習的關聯容器則有根本的不同,它們中的元素是按關鍵字來儲存和訪問的。在 c primer 中列舉了標準庫中的8個關聯容器,如下 關聯容器支援高效的關鍵字查詢和訪問,我們在這裡介紹兩個主要的關聯容...