Java 用外行的语言解释这句话;什么条件?(与哈希表有关)
该句的上下文: 简单地说,哈希表是一个数组的抽象,允许任何值用作索引。虽然数组要求索引为整数,但哈希表可以使用浮点值、字符串、另一个数组甚至结构作为索引。该索引称为键,该索引处数组元素的内容称为因此,哈希表是一种存储键/值对的数据结构,可以通过键快速搜索..” 我需要解释的句子: “为了实现这一魔力,哈希表使用了一个辅助函数,该函数可以将任何对象转换为适合订阅数组的整数索引。” ^用外行的话来说,这意味着什么?积分指数?订阅?请解释一下,我不知道哈希表是如何工作的,目前正试图理解它们Java 用外行的语言解释这句话;什么条件?(与哈希表有关),java,hashtable,Java,Hashtable,该句的上下文: 简单地说,哈希表是一个数组的抽象,允许任何值用作索引。虽然数组要求索引为整数,但哈希表可以使用浮点值、字符串、另一个数组甚至结构作为索引。该索引称为键,该索引处数组元素的内容称为因此,哈希表是一种存储键/值对的数据结构,可以通过键快速搜索..” 我需要解释的句子: “为了实现这一魔力,哈希表使用了一个辅助函数,该函数可以将任何对象转换为适合订阅数组的整数索引。” ^用外行的话来说,这意味着什么?积分指数?订阅?请解释一下,我不知道哈希表是如何工作的,目前正试图理解它们 谢谢 这意
谢谢 这意味着可以是任何对象的哈希表键需要转换为一个整数,该整数可以用作数组的索引。数组项是与键关联的值 例如:
Map<String, String> m = new HashMap<>();
m.put("name", "Sharon");
Map m=newhashmap();
m、 放入(“姓名”、“沙龙”);
幕后的工作是将“name”神奇地转换成整数(例如10),并将“Sharon”放入第10个索引处的String[]数组中
神奇的是,转换需要是不同的键将产生不同的索引,这意味着可以是任何对象的哈希表键需要转换为可以用作数组索引的整数。数组项是与键关联的值 例如:
Map<String, String> m = new HashMap<>();
m.put("name", "Sharon");
Map m=newhashmap();
m、 放入(“姓名”、“沙龙”);
幕后的工作是将“name”神奇地转换成整数(例如10),并将“Sharon”放入第10个索引处的String[]数组中
神奇的是,翻译需要是不同的键将产生不同的索引
哈希表使用辅助函数
这是关于hashCode()
函数的。Java中的每个对象都有这个函数
将任何对象转换为整数索引的
hashCode()
函数根据对象中的值返回一个整数。例如,字符串
的哈希代码基于该字符串
中的字符
适用于订阅阵列
然后,该整数可以用作数组的索引
这是HashMap
或Hashtable
如何在引擎盖下工作的基础。一般来说,你不必担心这些细节,但在某些时候,它们是大多数计算机科学学生的必读读物
哈希表使用辅助函数
这是关于hashCode()
函数的。Java中的每个对象都有这个函数
将任何对象转换为整数索引的
hashCode()
函数根据对象中的值返回一个整数。例如,字符串
的哈希代码基于该字符串
中的字符
适用于订阅阵列
然后,该整数可以用作数组的索引
这是
HashMap
或Hashtable
如何在引擎盖下工作的基础。一般来说,你不必担心这些细节,但大多数计算机科学学生在某些时候都需要阅读这些细节。让我们试着用一个例子来理解它-
假设我需要一个哈希表
,它可以将
对存储为
因此,首先我插入一对作为“Science”
(字符串键),Dept(“Science”)
(某个Dept对象)。
现在要存储这个部门
对象程序必须计算数组
的索引
,以便这个对象可以存储在该索引
。它应用了一种称为hashcode()
的方法,该方法根据密钥的内容将密钥(Science
)转换为整数。假设的hashcode
“科学”
为1234。
因此,Dept(“Science”)
将存储在索引1234处的数组中。
现在,如果我想插入另一个元素作为English,Dept(“English”)
,它将为“English”
(假设为2345)计算hashcode>,并将Dept(“English”)
存储在该位置(索引)
现在,如果我们这样做,我们将需要一个巨大的数组(这将是非常稀疏的,这在实践中无法实现)。
因此,在实际中使用了模
函数。
因此,当“Science”
解析为1234时,它被16除,结果是模数2(这是部门(“Science”)
将被存储的实际索引,“English”
。
因此,简而言之,hashcode将应用于键,该键将其转换为整数,然后取模将其滚动到所需的边界(这也会导致冲突)。让我们试着用一个例子来理解它-
假设我需要一个哈希表
,它可以将
对存储为
因此,首先我插入一对作为“Science”
(字符串键),Dept(“Science”)
(某个Dept对象)。
现在要存储这个dept
对象程序必须计算数组的索引
,这样这个对象就可以存储在索引
。它应用了一种称为hashcode()
的方法,该方法转换一个键(Science
)根据其内容设置为整数。假设的hashcode
“Science”
为1234。
因此,Dept(“Science”)
将存储在索引1234处的数组中。
现在,如果我想插入另一个元素作为Engli