我應該製作一個鏈式哈希表來將每個存儲桶中的名稱作爲鏈接列表。我知道如何使用具有一個值的桶進行此操作,但我不知道如何在每個桶中放置鏈接列表。我有一個人姓名和姓氏,以及哈希碼類。我寫了刪除,但我不知道如何將LinkedList放入方法。我也有一個bucketList類;這是我需要實現LinkedList的地方嗎?如果我能得到關於刪除或放置方法的指示,我應該能夠弄清楚如何完成其餘的工作。謝謝鏈式哈希錶鏈接列表
public class MyChainHashTable<K, V> {
private static final int BUCKET_COUNT = 10;
private BucketList[] buckets = new BucketList[BUCKET_COUNT];
private void remove(K key, V value) {
int bucketIndex = key.hashCode(); //TODO
int bucketsProbed = 0;
while (!buckets[bucketIndex].isEmptySinceStart() && bucketsProbed < BUCKET_COUNT) {
// if this bucket isn't empty, and it matches what we're looking for
if (!buckets[bucketIndex].isEmpty()
&& buckets[bucketIndex].getElement().equals(value)) {
buckets[bucketIndex].clear();
return;
}
bucketsProbed++;
bucketIndex++;
bucketIndex %= BUCKET_COUNT; // circle back to 0
}
}
private boolean put(K key, V value) {
return false;
}
private void showTable() {
// old phone UI
String[] keyBoard = {"1 ", "2 ABC", "3 DEF", "4 GHI", "5 JKL",
"6 MNO", "7 PRS", "8 TUV", "9 WXY", "0 "};
}
你的代碼對我來說沒有多大意義。你爲什麼要將'buckets'聲明爲一系列buckit **列表**?以及如何聲明BucketList? –
在傳統的Java哈希表中,每個存儲桶只是放置哈希鏈的第一個鏈接的地方。所以'bucket'數組應該是'HashChainNode []' –
BucketList一般是 –
Rawsick