我为HashMap编写了一个remove方法,但出现错误,因为它没有返回正确的值。
说明如下:
如果在地图上找到键,则remove(Object)方法应删除并返回与给定键关联的值。删除的条目应替换为REMOVED属性。如果地图不包含密钥,则此方法无效。
因此,这是我代码的一部分,与我的代码相关,因此不是长代码。
public class HashMap<K,V>
{
private final double MAX_LOAD_FACTOR = 0.75;
private HashEntry[] elementData;
private final HashEntry REMOVED = new HashEntry(null, null);
private int size;
public HashMap()
{
this.elementData = new HashMap.HashEntry[10];
size = 0;
}
public V remove(Object key)
{
int h = hashFunction(key);
while (elementData[h] != elementData[0] && elementData[h] != elementData[h].getKey())
{
h = (h + 1) % elementData.length;
}
if (elementData[h] == elementData[h].getKey())
{
elementData[h] = REMOVED; // "removed" flag value
size--;
return elementData[h].getValue();
}
return elementData[h].getValue();
}
public class HashEntry
{
private K key;
private V value;
public HashEntry(K key, V value)
{
this.key = key;
this.value = value;
}
public K getKey()
{
return key;
}
public V getValue()
{
return value;
}
}
}
我从错误中收到的消息是我的尺寸不正确,并且返回的值不正确。我可以在这方面寻求帮助吗?我不知道问题出在哪里。
答案 0 :(得分:1)
del module_name
我几乎拥有它,我只是想返回null并在最后将值存储在另一个变量中。