我正在構建一個通用HashTable類,在該類中我們使用簡單的Java .hashCode()方法將鍵轉換爲哈希,以數組大小爲模,並將結果存儲在索引中。唯一的問題是,教授希望我們不僅存儲價值,而且還存儲我們摧毀的關鍵。爲此,我創建了一個Data類,用於存儲並獲取兩個值:通用數組非常規鑄造
private class Data {
private K key;
private V value;
public Data(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
}
很簡單的東西。當我嘗試創建數據項的數組以保存創建它們的哈希值和鍵時,會遇到困難。 K和V都在哈希表類聲明中指定的通用值:
public class HashTable<K,V> implements Table<K,V>
當我第一次創建的類,我只是用一個對象陣列上的投創造的五世的數組,但由於我們需要存儲這兩個值,我決定創建Data類並存儲它們。但是,當我與我的
hashArray = (Data[])new Object[arraySize];
嘗試它給我的錯誤
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lproject3.HashTable$Data;
這讓我無法創建類型數據的數組。有沒有另一種方式,我可以存儲這個沒有使用列表(因爲這是一個賦值的參數)?
考慮看着java.util.HashMap'的'執行和檢查,看他們如何處理它。 –