/*** 自己寫的簡單雜湊表,以int值作為key,key值不能大於0x7fffffff。非執行緒安全。
* 使用的時候需要注意:因為這裡使用的雜湊演算法太過簡單,所以作為key值分布和預留的緩衝區長度之間的關係會影響訪問速度。
* * @author cuilichen
* */
public class hashtableint
/*** 建構函式
*/public hashtableint(int cap)
this.table = new item[cap];
this.threshold = cap * 75 / 100;
}/**
* 根據key,得到物件
* * @param key
* @return
*/public object get(int key)
}return null;
}/**
* 新增物件
* * @param key
* @param value
*/public void put(int key, object value)
}if (this.count >= this.threshold)
item e = new item();
e.key = key;
e.value = value;
e.next = table[index];
table[index] = e;
this.count += 1;
}/**
* 根據key,刪除物件
* * @param key
* @return
*/public object remove(int key) else
this.count -= 1;
return e.value;
}prev = e;
e = e.next;
}return null;
}/**
* rehash
*/protected void rehash() }}
/*** 清空雜湊表
*/public void clear()
this.count = 0;
}/**
* 得到雜湊表的長度
* * @return
*/public int size()
/*** 判斷雜湊表是否是空的
* * @return
*/public boolean isempty()
/*** 判斷雜湊表中是否有某個物件
* * @param value
* @return
*/public boolean contains(object value) }}
return false;
}/**
* 判斷雜湊表中是否有某個key
* * @param key
* @return
*/public boolean containskey(int key)
}return false;
}/**
* 得到雜湊表中所有的key
* * @return
*/public int keys() }}
return keys;
}/**
* 將雜湊表中的所有資料列印到控制台
*/public void debug() else
system.out.print('/n');}}
}/**
* 雜湊表中的每個項
* * @author cuilichen
* */
private class item
/*** 測試
* * @param args
*/public static void main(string args)
for (int i = 0; i < 10; i++)
table.put(81, "" + 81);
table.debug();
table.remove(0);
system.out.println("");
table.debug();
system.out.println("");
system.out.println(table.size());
system.out.println(table.contains("31"));
system.out.println(table.contains("41"));
system.out.println(table.get(10));
}
雜湊的定義與整數雜湊
一般來說,雜湊可以濃縮成一句話 將元素通過乙個函式轉化為整數,使得該整數可以盡量唯一地代表這個元素。其中,把這個轉換函式稱為雜湊函式h,也就是說,如果該元素在轉換前為key,那麼轉換後就是乙個整數h key 常見的雜湊函式有直接位址法 平方取中法 除留餘數法等。其中,直接位址法是指恒等變換h key...
雜湊表(雜湊表)的定義
chapter 雜湊表 雜湊表 1.雜湊表 雜湊表 的定義 2.雜湊表是怎麼進行查詢的?3.雜湊函式設計 直接定址法 4.雜湊函式設計 除留餘數法 5.雜湊衝突處理 開放定址法 6.雜湊衝突處理 鏈位址法 7.雜湊表的鏈位址法實現 8.linux核心中的hash與bucket 9.引入雜湊桶的概念來...
雜湊表(雜湊表)的實現
雜湊函式直接用key size的形式,size為雜湊表的大小。衝突處理採用平方探測法,為保證可以探測到整個雜湊表空間,雜湊表大小設定為4k 3形式的素數。當雜湊表中的元素過多時會造成效能下降,這時應該倍增雜湊表的大小,重新計算原來雜湊表中每個元素在新的雜湊表中的位置。雜湊表的實現 hashtable...