以整數為key的雜湊表

2021-04-27 16:43:34 字數 2347 閱讀 9279

/*** 自己寫的簡單雜湊表,以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...