底層實現:陣列+鍊錶
/**
* 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...