Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures HashTable和HashMap之间的基本区别?_Data Structures_Hashmap_Language Agnostic_Hashtable - Fatal编程技术网

Data structures HashTable和HashMap之间的基本区别?

Data structures HashTable和HashMap之间的基本区别?,data-structures,hashmap,language-agnostic,hashtable,Data Structures,Hashmap,Language Agnostic,Hashtable,我正在研究散列表和散列图,我读过或看过的每一篇文章都给出了一个非常模糊的差异描述。在Netbeans上与它们混在一起,它们似乎有着相同的功能,做着相同的事情,这两种数据结构之间的根本区别是什么?没有区别,但你可以发现相同的东西在不同的编程语言中调用不同,因此,人们如何称呼某事物取决于他们的背景和他们使用的编程语言。例如:在C++中,它将是,在java中,它将是。 此外,根据命名可能有一个差异:HashTable只允许存储散列键,而不允许存储值,而HashMap允许通过散列键检索值。在内部,两者将

我正在研究散列表和散列图,我读过或看过的每一篇文章都给出了一个非常模糊的差异描述。在Netbeans上与它们混在一起,它们似乎有着相同的功能,做着相同的事情,这两种数据结构之间的根本区别是什么?

没有区别,但你可以发现相同的东西在不同的编程语言中调用不同,因此,人们如何称呼某事物取决于他们的背景和他们使用的编程语言。例如:在C++中,它将是,在java中,它将是。
此外,根据命名可能有一个差异:
HashTable
只允许存储散列键,而不允许存储值,而
HashMap
允许通过散列键检索值。在内部,两者将使用相同的算法,并且可以被视为相同的数据结构

哈希表在我看来像是一个具体的数据结构,尽管它有许多变体,这取决于发生冲突时、表填充时和清空时发生的情况

Map听起来像是一个抽象的数据结构,由可用的操作定义(Dictionary可能是同一数据结构的另一个名称,但如果某些术语在某个地方定义了两者的细微差别,我不会感到惊讶)

HashMap听起来像是使用HashTable具体数据结构的Map抽象数据结构的实现


同样,如果一种语言或一个库同时提供了这两种语言或库,并且在某些地方有细微差别,我也不会感到惊讶(例如,HashMap只能提供为Map定义的操作,但HashTable提供了对HashTable有意义的一切)。

干杯,伙计,我感谢您的帮助!