Hashtable中的資料結構

2021-08-30 20:16:25 字數 877 閱讀 8804

看下hashtable中的put 方法

public synchronized v put(k key, v value)

// makes sure the key is not already in the hashtable.

entry tab = table;

int hash = key.hashcode();

int index = (hash & 0x7fffffff) % tab.length;

for (entrye = tab[index] ; e != null ; e = e.next)

}modcount++;

if (count >= threshold)

// creates the new entry.

entrye = tab[index];

tab[index] = new entry(hash, key, value, e);

count++;

return null;

}

entry是hashtable的乙個內部類

然後把插入的value,作為乙個資料結構放入

next,entry實現了乙個鍊錶。。。。

查詢的時候(下面的get方法),先找到index,然後遞迴next

圖是這樣的

[img]

protected entry(int hash, k key, v value, entrynext)

public synchronized v get(object key)

}return null;

}

資料結構 HashTable

基本介紹 雜湊表管理學生資訊概圖 示例 data public class student public student int id,string name,string string address public class studentlinkedlist 如果鍊錶為空,直接將節點新增到鍊錶...

資料結構 字典hashtable

redis的資料庫就是使用字典來作為底層實現的,對資料庫的增 刪 查 改操作也是構建在對字典的操作之上的。舉個例子,當我們執行命令 redis set msg hello world 在資料庫中建立乙個鍵為 msg 值為 helloworld 的鍵值對時,這個鍵值對就是儲存在代表資料庫的字典裡面的。...

資料結構與演算法 Hash Table

參考自 談談 hash table 雜湊表是一種資料結構,實現key value的快速訪問。之前說過陣列可以實現快速隨機訪問,所以雜湊表肯定會使用到陣列。在這裡,我們把每乙個陣列的單元叫做乙個bucket 桶 雜湊表的大小最好是素數。雜湊表是乙個在時間和空間上做出權衡的經典例子。如果沒有記憶體限制,...