リンク リストの ArrayList にキーと値のペアを格納する Java でハッシュ テーブル クラスを作成したいと考えています。私は宣言することによってこれを行います
ArrayList<LinkedList<T>> storage = new ArrayList();
次に、arrayList の各インデックス内に新しいリンク リストを作成するために使用できる linkList オブジェクトを作成します。これを行うには、次のように宣言します。
LinkedList<T> list = new LinkedList<T>();
次に、arrayList の Hashed キー インデックス内にある LinkedList の最初のインデックスに要素を追加するように add 関数を設定しました。
public void add(K key, T value){
int arrayListIndex = (key.hashCode()) % this.initialCapacity;
System.out.println(arrayListIndex); //This tells us where we access the Array List;
if (hashBrown.get(arrayListIndex) == null){
hashBrown.add(arrayListIndex, list);
hashBrown.get(arrayListIndex).addFirst(value);
}
}
このコードを実行するたびに、インデックスが 7 でサイズが 0 のエラーが表示されます。これにより、次のエラーが発生します。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 7, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:571)
at java.util.ArrayList.get(ArrayList.java:349)
at FastHashtable.add(FastHashtable.java:72)
at FastHashtable.main(FastHashtable.java:145)
このインデックスの範囲外エラーがどこから来ているのかを突き止めることができません。誰かがアドバイスを提供できますか? 私はArrayListsを扱うことにかなり慣れていないため、arrayListの元の宣言が間違っていると思います。