連鎖リストとして各バケットに名前を入れるためのチェーンハッシュテーブルを作成することになっています。私は一つの値を保持するバケットでこれを行う方法を知っていますが、各バケットにリンクリストを入れる方法はわかりません。私は名字とハッシュコードクラスを持つpersonクラスをすでに持っています。私は削除を書いたが、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 "};
}
あなたのコードは私にはあまり意味がありません。なぜバケット**リスト**の配列としてバケットを宣言しましたか? 'BucketList'はどのように宣言されていますか? –
従来のJavaハッシュテーブルでは、各バケットは単にハッシュチェーンの最初のリンクを置く場所です。したがって、 'buckets'配列は' HashChainNode [] 'でなければなりません –
BucketList総称 –
Rawsick