我有一个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