将元素添加到哈希映射

时间:2014-03-17 02:56:47

标签: java hash map add bucket

在运行这些函数之后,我将绘制一个大小为6的哈希表的图表。

add(13)add(21)add(7)add(25)

我对哈希表非常不熟悉,但我想出了这个。

(7)(13)(21)(25)()()

我知道当你向哈希添加一个元素时,会为它分配一个特定的哈希码,但我不明白如何找到它。有人可以向我解释一下吗?

3 个答案:

答案 0 :(得分:0)

要在@HovercraftFullOfEels上构建答案, not 在对象中正确实现hashCode(),会导致HashMap在添加该对象时表现不佳。换句话说,使用HashMap的先决条件是所有潜在成员都已正确实施hashCode()

以下是有关实施hashCode()的更多信息:https://www.google.com/search?q=implementing+hashcode+in+java

答案 1 :(得分:0)

一样定义你的表格
 HashMap newMap = new Hashmap();

然后将元素放在你的内部

 newMap.put(1, "what ever");

答案 2 :(得分:0)

不幸的是,哈希表需要两个参数来实际分配值。哈希表的工作方式如下:

hashtable.add(key, value);

密钥通过哈希函数运行,并将值放入哈希函数提供的索引处的数组中,如下所示:

public class FauxHashTable {
    Object[] storage;

    public FauxHashTable(int size)
    {
        storage = new Object[size];
    }

    public void add(Object key, Object value)
    {
        storage[hashFunction(key)] = value;
    }

    public int hashFunction(Object o)
    {
        // Does some magic and returns a unique identifying integer of the object! A mathematical function that returns a different integer for EVERY object put in!
    }
}

所以,你的问题对我没有意义,因为你给一个只有一个参数的add函数。我认为您添加Java标记的事实让很多回答者感到困惑,因为当使用Java表示散列表时,通常意味着HashMap类。 HashMap是一个哈希表的实现,但我不认为它是你在这里所要求的。

既然你说"我要画",我认为这是作业,所以我会尝试而不是直接给你答案。