从哈希表 (java) 中删除项目



我有一个包含多种方法的类部分,包括方法 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中获取尺寸.

首先,您使用的是未初始化的全局变量,sizefor 循环中使用的大小需要是 Hash 集合的大小。 另外哈希是如何初始化的? 它包含你的想法吗? 我会按照上述建议使用调试器逐步完成代码,也许键不是您认为的那样......

最新更新