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

时间:2016-02-22 17:38:47

标签: java data-structures hashtable

我有一个包含多种方法的类Section,包括方法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(),它和这个方法调用的其他方法一样好用。我真的需要弄清楚。所以我将非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

调试代码,进入for循环。如何初始化<!DOCTYPE html> <html > <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> </head> <body> <span id="text1"><i class="fa fa-user fa-2x"></i> - Personal Profile Update</span> </body> </html> 变量的值?如果您忘记默认初始化它将为零。最好从 WebBrowser1.Navigate('http://localhost/'); 获得大小。

答案 1 :(得分:0)

首先,您使用的是未初始化的全局变量sizefor循环中使用的大小需要与哈希集合的大小相同。哈希如何初始化?它包含你的想法吗?我会按照上面提到的建议来使用调试器逐步执行代码,也许密钥不是你认为的那样......