Java 向哈希映射添加元素
在运行这些函数之后,我将绘制一个哈希表的图表,大小为6 增补(13)增补(21)增补(7)增补(25) 我对哈希表很不熟悉,但我想到了这个 (7) (13)(21)(25)()Java 向哈希映射添加元素,java,hash,map,add,bucket,Java,Hash,Map,Add,Bucket,在运行这些函数之后,我将绘制一个哈希表的图表,大小为6 增补(13)增补(21)增补(7)增补(25) 我对哈希表很不熟悉,但我想到了这个 (7) (13)(21)(25)() 我知道当你把一个元素添加到一个散列中时,它会被分配一个特定的散列码,但我不知道如何找到它。有人能给我解释一下吗?以@hovercraftfullofels答案为基础,如果不在对象中正确实现hashCode(),将导致HashMap在添加该对象时表现不好。换句话说,使用HashMap的先决条件是所有潜在成员都正确实现了ha
我知道当你把一个元素添加到一个散列中时,它会被分配一个特定的散列码,但我不知道如何找到它。有人能给我解释一下吗?以@hovercraftfullofels答案为基础,如果不在对象中正确实现
hashCode()
,将导致HashMap
在添加该对象时表现不好。换句话说,使用HashMap
的先决条件是所有潜在成员都正确实现了hashCode()
下面是有关实现hashCode()
的更多信息:定义表
HashMap newMap = new Hashmap();
然后把元素放在你的身体里
newMap.put(1, "what ever");
不幸的是,哈希表需要两个参数来实际赋值。哈希表的工作原理如下:
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!
}
}
所以,你的问题对我来说没有意义,因为你给出的加法函数只有一个参数。我认为您添加了Java标记这一事实让很多回答者感到困惑,因为当一个人说用Java创建哈希表时,通常指的是HashMap类。HashMap是一个哈希表的实现,但我不认为这正是您在这里要问的
既然你说“我要画画”,我想这是家庭作业,所以我会尽量不直接给你答案。不要想有索引的
HashMap
。它是无序的,因此没有可以直接访问的索引系统。如果顺序很重要的话,TreeMap
可能更适合您的需要。map*我同意,hashmap不是用于此目的的wya