HashMap vs HashSet:区别与比较

HashMap 和 HashSet 是 Hashtable 中两个不同的函数。 哈希表不过是一种数据结构,您可以在其中映射键值。

哈希函数是哈希表中最主要的东西。 与其他数据结构相比,哈希表的主要优势是速度。

关键精华

  1. HashMap 是一种存储键值对的数据结构,而 HashSet 存储的是没有关联值的唯一元素。
  2. HashMap实现了Map接口,HashSet实现了Java中的Set接口。
  3. HashSet 由 HashMap 支持,使用虚拟值作为键来维护唯一元素的集合。

HashMap 与 HashSet

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 中创建指定的初始容量和加载因子。

另请参阅:  Microsoft 统一支持与顶级支持:差异与比较

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() 方法计算两个集合之间的差异。

另请参阅:  ExtJS 与 jQuery:差异与比较

在 Subset 中,我们可以使用 contains-all() 方法添加另一个集合的另一个子集。 当我们在 HashSet 中添加值或插入值时,它不能按顺序根据代码插入。

对元素的迭代不按特定顺序返回。 我们还可以使用存储与键关联的数据的索引。

大多数情况下,我们可以使用 hashset 从他们的集合中访问随机元素。 因为它是通过哈希码访问的,所以它是唯一的,所以我们可以很容易地识别元素。

由于它不是不同步的,因此可以同时访问多个威胁并进行修改。 它是通过同步集合中的一个对象来完成的。

资产中的值或者实际上是一个对象,我们可以创建一个字符串类型的对象,并且可以包装到我们指定的类中。 它将整数存储为对象以限制时间复杂度。

HashMap 和 HashSet 的主要区别

  1. HashMap 中加法时的对象要求是两个,而HashSet 中加法时的对象要求只有一个。
  2. HashMap 有任意数量的空值,但 HashSet 只有一个空值。
  3. 键值对存储在 HashMap 中,而对象存储在 HashSet 中。
  4. 与Hashmap 相比,HashSet 用于数据的唯一性。
  5. HashMap 的例子是 {a->4, b->9, c->5},HashSet 的例子是 {6, 43, 2, 90, 4}。
参考资料
  1. https://dl.acm.org/doi/abs/10.1145/2884781.2884869?casa_token=1z9VmoTZC90AAAAA:8-pUqjpp5C0S4rIzg2sMUI4FeuvVH5QIN99WkbSrP1HSwCa13CtZa7lXBKMzm864NI__H8iKBcjMZck
  2. https://ieeexplore.ieee.org/abstract/document/5370764/

最后更新时间:13 年 2023 月 XNUMX 日

点1
一个请求?

我付出了很多努力来写这篇博文,为您提供价值。 如果您考虑在社交媒体上或与您的朋友/家人分享,这对我很有帮助。 分享是♥️

发表评论

想保存这篇文章以备后用? 点击右下角的心形收藏到你自己的文章箱!