HashMap 和 HashSet 是 Hashtable 中两个不同的函数。 哈希表不过是一种数据结构,您可以在其中映射键值。
哈希函数是哈希表中最主要的东西。 与其他数据结构相比,哈希表的主要优势是速度。
关键精华
- HashMap 是一种存储键值对的数据结构,而 HashSet 存储的是没有关联值的唯一元素。
- HashMap实现了Map接口,HashSet实现了Java中的Set接口。
- HashSet 由 HashMap 支持,使用虚拟值作为键来维护唯一元素的集合。
HashMap 与 HashSet
HashMap 是一种基于键值的数据结构,允许我们通过使用 唯一键. HashSet 是一种基于集合的数据结构,用于存储唯一对象的集合,并使用散列来存储对象并提供恒定时间性能。
哈希图 与数组数据类型相关联。 它是 Java 集合的一部分。 这个类可以在 Java 中找到直到 package。
这个可以在Java的map接口中实现,它把数据存储在(KEY,VALUE)中,用来存储value,通过key访问。
当我们传递一个对象时,可以使用作为索引的键值来访问它。 我们可以确保重复键,但这意味着前一个元素对应于该键。
空键也存储在 哈希图. HashMap 只允许一个空键。
一个 HashSet 包含一个唯一的集合。 这个类可以在 Java 中找到直到 package。
它使用称为散列的机制将其信息存储到散列表中,表中的元素由称为散列码的唯一值访问,散列码是使用散列表数据结构底层的集合接口实现的类。
它不允许重复值,但我们可以有虚拟值。 主要优点是它可以是可序列化和可克隆的接口。
对比表
比较参数 | 哈希图 | 哈希集 |
---|---|---|
虚拟值 | HashMap 没有虚拟值 | HashSet 具有虚拟值 |
添加机制 | HashMap 使用散列技术 | HashSet 使用散列对象 |
迅速的 | HashMap 更快 | HashSet 比较慢 |
插入方式 | HashMap中的插入方法是Put() | HashSet中的插入方法是Add() |
例如: | (a-10、b-20、c-70) | (10,20,70) |
什么是哈希表?
Hashmap可以通过使用方法(Hash Map hm = 新的 HashMap ();). 例如可以在 HashMap 中创建指定的初始容量和加载因子。
HashMap 可以以不同的方式对值进行排序。 它将字符串存储为键。 在 HashMap 中,键值被视为对象。 主要任务是使用关键值或对象来组织表。 组织所花费的时间是 O(1) 时间。
因为灵活的Keys作为hash map的一个强项。 这些类似于数组,但它们具有用于访问数据的“索引”,但在哈希映射中,我们使用键来访问值。
HashMap 有一些基本操作,如添加元素、访问元素、更改元素、删除元素。
要添加元素,我们使用 put() 方法,要访问元素,我们使用 get() 方法,要更改元素,我们使用 replace() 方法,要删除元素,使用 remove() 方法。
同样,还有许多命令和方法,如 clear、compute、merge、clone、size 等,可帮助程序员有效地使用 HashMap。
什么是哈希集?
HashSet 可以通过语法 (Hash Set< E> hs = new Hash Set< E>();) 来实现,它定义了哈希集的容量,也没有定义它,默认值为 16,加载因子为 0.75。
HashSet(int capacity, float fill Ratio) 用于调整hashset的容量,当元素更大时,它必须有容量存储集合中的值,因此集合被扩展。
我们有相同的基本操作,如添加、删除、包含和大小,但它在基本操作上具有恒定的时间性能。
在集合中我们有其他各种操作,如联合集、集合的差异,子集具有 hashset 方法的优势。
在集合的并集中,我们可以使用add-all()方法对两个集合进行并集运算。 在集合的差异中,我们可以使用 remove-all() 方法计算两个集合之间的差异。
在 Subset 中,我们可以使用 contains-all() 方法添加另一个集合的另一个子集。 当我们在 HashSet 中添加值或插入值时,它不能按顺序根据代码插入。
对元素的迭代不按特定顺序返回。 我们还可以使用存储与键关联的数据的索引。
大多数情况下,我们可以使用 hashset 从他们的集合中访问随机元素。 因为它是通过哈希码访问的,所以它是唯一的,所以我们可以很容易地识别元素。
由于它不是不同步的,因此可以同时访问多个威胁并进行修改。 它是通过同步集合中的一个对象来完成的。
资产中的值或者实际上是一个对象,我们可以创建一个字符串类型的对象,并且可以包装到我们指定的类中。 它将整数存储为对象以限制时间复杂度。
HashMap 和 HashSet 的主要区别
- HashMap 中加法时的对象要求是两个,而HashSet 中加法时的对象要求只有一个。
- HashMap 有任意数量的空值,但 HashSet 只有一个空值。
- 键值对存储在 HashMap 中,而对象存储在 HashSet 中。
- 与Hashmap 相比,HashSet 用于数据的唯一性。
- HashMap 的例子是 {a->4, b->9, c->5},HashSet 的例子是 {6, 43, 2, 90, 4}。
- https://dl.acm.org/doi/abs/10.1145/2884781.2884869?casa_token=1z9VmoTZC90AAAAA:8-pUqjpp5C0S4rIzg2sMUI4FeuvVH5QIN99WkbSrP1HSwCa13CtZa7lXBKMzm864NI__H8iKBcjMZck
- https://ieeexplore.ieee.org/abstract/document/5370764/
最后更新时间:13 年 2023 月 XNUMX 日
Sandeep Bhandari 拥有塔帕尔大学计算机工程学士学位(2006 年)。 他在技术领域拥有 20 年的经验。 他对各种技术领域都有浓厚的兴趣,包括数据库系统、计算机网络和编程。 你可以在他的网站上阅读更多关于他的信息 生物页面.