關於Set的原始碼分析

2022-09-11 01:45:12 字數 954 閱讀 6672

set介面繼承collection介面,裡面的方法在collection中都存在

set的幾個主要實現類為:hashset,treeset

hashset原始碼

//hashset的繼承關係

public

class hashsetextends abstractsetimplements set, cloneable, j**a.io.serializable

//

由此可以看出hashset底層實現是用hashmap

private

transient hashmapmap;

public

hashset()

通過下面方法,我們可以看出來,hashset的實現方法為map操作

//

遍歷

public iteratoriterator()

//計算長度

public

intsize()

//判斷是否為空

public

boolean

isempty()

//新增

public

boolean

add(e e)

treeset原始碼

//

treeset的繼承關係

public

class treesetextends abstractsetimplements n**igableset, cloneable, j**a.io.serializable

//有此可以看出treeset的底層實現也為map

public

treeset()

treeset常用方法,都是呼叫treemap中的方法,只是在新增的時候用靜態常量present來填充map的value位置。

STL原始碼分析set

include include using namespace std int main set iset ia,ia 5 cout size iset.size endl cout 3 count iset.count 3 endl iset.insert 3 cout size iset.siz...

C STL原始碼分析 set和multiset

侯捷 sl體系結構核心分析 set和multiset探索 stl中assosiated container 比如 set 和 multiset 底層都是由紅黑樹作為支撐實現,所以在了解他們之前,有必要先來了解一下紅黑樹。template class traits class tree public ...

Redis原始碼分析之SET流程

本篇分析redis 如何處理set指令 客戶端解析使用者輸入 構造指令 redisformatsdscommandar clisendcommand issuecommandrepeat repl 例如使用者輸入set abcd 2,則構造的指令就是 3 r n 3 r nset r n 4 r n...