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