原始碼除錯 map篇 HashTable

2021-10-04 14:50:14 字數 1052 閱讀 7987

底層實現:陣列+鍊錶

/**

* the hash table data.

*/private

transient entry<?,

?>

table;

/**

* the total number of entries in the hash table. 在hash表中的總條目

*/private

transient

int count;

/**

* the table is rehashed when its size exceeds this threshold. (the

* value of this field is (int)(capacity * loadfactor).)

* 暫時 當前大小 載入因子*容量

** @serial

*/private

int threshold;

/**

* constructs a new, empty hashtable with a default initial capacity (11)初始總容量

* and load factor (0.75). 載入因子

*/public

hashtable()

//當前容量閾值

threshold =

(int

)math.

min(initialcapacity * loadfactor, max_array_size +1)

;

put:

if

(value == null)

key:不能為空!

陣列雜湊表索引值:int hash = key.hashcode(); int index = (hash & 0x7fffffff) % tab.length;

map原始碼解析

public v put k key,v value 若沒有在table i 位置找到相同的key,則新增key到table i 位置,新的元素總是在table i 位置的第乙個元素,原來的元素後移 modcount addentry hash,key,value,i return null voi...

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...

除錯RocketMQ原始碼

拷貝namesrv broker的配置檔案到指定目錄,為了避免直接修改 中的配置檔案。1.1 在f盤建立rocketmq資料夾,建立三個子資料夾conf logs store,我的 中多了dev data的資料夾 1.2 將distribution原始碼conf目錄下的broker.conf log...