我有一個HashMap
類,它將類型爲Object[]
的變量「table」初始化爲Object[cap]
,其中cap在測試中等於10。我在HashMap
類以下put方法:如何使數組元素成爲ArrayList?
public void put(K key, V value){
HashEntry<K, V> newEntry = new HashEntry<K, V>(key, value);
location = Math.abs(key.hashCode()) % capacity;
//System.out.println(location);
if(table[location] == null){
table[location] = new ArrayList<HashEntry<K, V>>();
table[location] = newEntry;
numItems++;
}
else {
table[location] = newEntry;
}
}
爲了使ArrayList
工作,我應該使用table[location].add(newEntry)
,不table[location] = newEntry
。但是,如果我使用前者,則會收到消息「方法add(HashEntry<K,V>)
對於類型Object
未定義。」當我使用後者時,我當然無法得到正確的輸出,因爲沒有從中檢索信息的「bucket
」。我更喜歡使用ArrayList
來創建二維數組,因爲我根本沒有得到2D arrays
!任何幫助表示讚賞,因爲我一整天都在圈子裏嘗試一百萬種不同的東西。
你在哪裏/如何定義'table'? – Mritunjay
你是否嘗試將表聲明爲一個List數組?像「List []表」;「 – paep3nguin
對象[]表;然後在構造函數中,table = new Object [cap]; – vegasbrent