我有一个包含多种方法的类部分,包括方法 get_key() 和 get_angle()。Section 类型的项将添加到在类 Hashtable 中实现的哈希表中。根据我的任务,我应该从哈希表中删除这些元素,这些元素的函数 get_angle() 值大于 given_value。
class Hashtable{
private Section[] hash_array; //array of cells of the hashtable
public int size;
public void remove_given(double given_value)
{
for(int i = 0; i < size; i++)
{
if (hash_array[i] != null)
{
double value = hash_array[i].get_angle(); //value of needed function to compare
if (value > given_value)
{
int key_ = hash_array[i].get_key(); //get key for the item in order to delete it
Delete(key_); //delete item
}
}
}
}
}
但该方法不会删除任何元素。我分别检查了方法Delete(),它与此方法调用的其他方法一样工作正常。我真的需要弄清楚。因此,我将感谢您的帮助。
调试你的代码,它是否进入for循环。如何初始化size
变量的值?如果您忘记默认初始化它,它将为零。最好从hash_array.length
中获取尺寸.
首先,您使用的是未初始化的全局变量,size
,for
循环中使用的大小需要是 Hash 集合的大小。 另外哈希是如何初始化的? 它包含你的想法吗? 我会按照上述建议使用调试器逐步完成代码,也许键不是您认为的那样......