看下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 桶 雜湊表的大小最好是素數。雜湊表是乙個在時間和空間上做出權衡的經典例子。如果沒有記憶體限制,...