散列表(hashmap)和哈希表(hashtable)的区别

HashMap和hashTable是Java集合中的数据结构。它们使用键值对来存储对象。它们都有一些相似之处,比如都实现了java.util.Map接口,并且都使用哈希原理。然而,当我们在Java编程语言的上下文中提到它们时,两者之间有许多不同之处。...
关键区别:在计算机科学中,哈希表或哈希映射是指将键(名称)与值(属性)链接在一起的数据结构。在Java中,两者有一些重要的区别,比如HashTable是同步的,HashMap是不同步的。哈希表不允许空键。但是,HashMap允许一个null键和任意数量的null值。
散列表(hashmap)和哈希表(hashtable)的区别

HashMap和hashTable是Java集合中的数据结构。它们使用键值对来存储对象。它们都有一些相似之处,比如都实现了java.util.Map接口,并且都使用哈希原理。然而,当我们在Java编程语言的上下文中提到它们时,两者之间有许多不同之处。

哈希表用于使用键存储和检索值。为此,密钥必须是唯一的。用于存储键和值对的表称为哈希表。哈希表是通过使用对密钥进行哈希运算的算法形成的。此哈希函数用于为输入数据分配数字,然后将数据存储为与计算或计算的数字相对应的数组索引。

与哈希表一样,hashMap也使用相同的哈希原理。它可以看作是一个基于哈希表的Map接口实现。但是,它与哈希表有几点不同。HashMap是不同步的,而hashTable是同步的。同步意味着在粒子时间,只有一个线程能够修改表。因此,要在哈希表上执行更新操作,必须在该表上获取锁。对于那个特定的时间,其他线程必须等待。解锁后,其他线程可以继续在工作台上工作。两者之间的另一个主要区别是hashTable不允许空键。但是,hashMap允许一个null键和任意数量的null值。

散列表(hashmap)和哈希表(hashtable)的区别

HashMap和HashTable的比较:

 

哈希图 散列表
同步 它是不同步的 它是同步的(线程安全的)
空值 它允许空值作为键和值 它不允许空值
java简介 Java版本1.2 java开发工具包的第一个版本
演出 比较好 比较差
延伸 它扩展了AbstractMap类 它扩展了相当古老的Dictionary类
键的迭代 迭代器用于迭代键 枚举接口用于迭代键
应用 适用于非线程应用程序 通常,对于多线程应用程序是安全的
序列化 未序列化 序列化的
备选方案 可以在多线程环境中使用并发hashMap 别无选择

  • 发表于 2021-07-13 20:48
  • 阅读 ( 314 )
  • 分类:通用

你可能感兴趣的文章

散列表(hashmap)和树状图(treemap)的区别

关键区别–hashmap与treemap 在编程中,有各种机制来收集数据。集合是存储数据的一种方法。编程语言,如Java使用集合。它是一个包含类和接口的框架,用于存储和操作一组数据元素。在普通数组中,有固定数量的元素要存储...

  • 发布于 2020-10-02 05:06
  • 阅读 ( 353 )

等于(equals)和java中的hashcode(hashcode in java)的区别

...等。打印s1和s2的hashCode得到相同的值。hashCode方法可用于HashMap等集合。 等于(equals)和java中的hashcode(hashcode in java)的区别 等于Java中的hashCode equals是Java中的一个方法,它的作用类似于==运算符,后者用于测试对象标识而...

  • 发布于 2020-10-19 00:40
  • 阅读 ( 200 )

通用(generic)和c中的非泛型集合#(non-generic collection in c#)的区别

...小。 一些非泛型集合类是ArrayList、SortedList、Stack、Queue和HashTable。每个集合类实现IEnumerable接口。它有助于使用foreach循环遍历集合中项的元素。 ArrayList是数组的一种替代方法。如果有一个数组可以存储10个元素,它就不能存储20...

  • 发布于 2020-10-24 01:08
  • 阅读 ( 341 )

6个免费的哈希检查程序来检查任何文件的完整性

...希生成。您可以加载HashMyFiles,其中包含需要哈希的文件列表,将其设置为有效,并接收整个列表的哈希。 ...

  • 发布于 2021-03-19 07:54
  • 阅读 ( 341 )

为什么每次服务的密码数据库泄露时都要担心

...在于数据库中。攻击者通过查找表和匹配密码的大量哈希列表来实现这一点。然后可以将哈希值与数据库进行比较。例如,攻击者会知道“password1”的哈希值,然后查看数据库中是否有帐户使用该哈希值。如果他们是,攻击者知...

  • 发布于 2021-04-08 14:27
  • 阅读 ( 178 )

您的密码是如何存储在互联网上的(以及何时您的密码强度无关紧要)

...),它本质上是一个数万亿个不同哈希值及其匹配密码的列表,它们只需查找哈希值,看看是否已经被发现。尝试在Google中输入e38ad214943daad64c102faec29de4afe9da3d。您很快就会发现它是“password1”的SHA-1散列。有关彩虹表如何工作的...

  • 发布于 2021-05-26 07:29
  • 阅读 ( 152 )

散列表(hashmap)和linkedhashmap公司(linkedhashmap)的区别

HashMap和LinkedHashMap是Java平台中最常见和通用的两种Map实现。它们基本上是基于散列的类,彼此非常相似,用于创建映射。Map接口是最后一个主要的Collecti***框架接口,它定义了一组键到值关联(其中键是唯一的)所支持的操作。...

  • 发布于 2021-06-25 20:26
  • 阅读 ( 225 )

散列表(hashmap)和容器(hashset)的区别

...识值。就像Vector和Stack在ArrayList和LinkedList中有替换一样,Hashtable在HashMap中也有替换。它扩展了AbstractMap,使用内部哈希表表示来实现Map接口。与其他通用实现类似,HashMap支持Map的可选方法,允许空值,并且不同步。 什么是哈希...

  • 发布于 2021-06-25 21:32
  • 阅读 ( 333 )

哈希表(hashtable)和词典(dictionary)的区别

Hashtable和Dictionary的主要区别在于,Hashtable是弱类型的数据结构,因此可以添加任何类型的键和值,而Dictionary是强类型的数据结构,因此只能添加满足键和值的指定数据类型的元素。 哈希表和字典是两种主要的数据结构。它们都...

  • 发布于 2021-06-30 21:47
  • 阅读 ( 1649 )

散列(hashing)和加密(encryption)的区别

哈希和加密的主要区别在于,哈希输出不能转换回原始消息,而加密的消息可以转换回原始消息。 重要的是要确保在网上交换信息是安全的。有多种方法可以保证数据的安全。其中两个是散列和加密。散列对数据应用散列函数...

  • 发布于 2021-07-01 01:39
  • 阅读 ( 596 )
D48pj332
D48pj332

0 篇文章

相关推荐