Java Hashmap 中的冲突

Hiten Kanwar 2021年10月2日
Java Hashmap 中的冲突

Java 集合接口使用其 HashMap 类提供哈希表数据结构的功能。此类将元素存储在键值对中,其中键充当标识符并且与映射中的值相关联是唯一的。

在本教程中,我们将讨论 Java 中的碰撞。

HashMap 键包含一个哈希码和一个 equals() 方法。每当我们向 Map 插入新条目时,它都会检查哈希码。它解析整个对象池,使用 equals() 方法搜索哈希码的相似性。

如果存在任何条目,则新值将替换主要现有值。否则,它只会创建一个全新的键值对。

当多个键散列到同一个存储桶时,或者当两个或多个对象具有相同的散列码但不同时,就会发生冲突。当两个键被散列到相同的值时,在存储桶位置形成一个链表,其中所有信息都存储为映射的条目,其中包含键值对。

如果条目存在于列表中,访问任何对象可能会变得很麻烦。这些链表从 Java 8 版本转换为二叉树。

HashMap 使用称为链的概念非常有效地处理冲突情况,它建议将值存储在链表或二叉树中,如 Java 8 的方法转换所示。

相关文章 - Java HashMap