Java 中 HashSet 和 HashMap 类的区别

2025年3月17日 | 阅读 3 分钟

Java 中的 HashMapHashSet 是最受欢迎的集合类。两者都用于数据结构。下表描述了 HashMap 和 HashSet 之间的区别

基础HashMapHashSet
定义Java HashMap 是 Map 接口的基于哈希表的实现。HashSet 是一个 Set。它创建一个使用哈希表进行存储的集合。
实施HashMap 实现 Map, Cloneable, 和 Serializable 接口。HashSet 实现 Set, Cloneable, Serializable, IterableCollection 接口。
存储在 HashMap 中,我们存储 键值对。它维护键和值的映射。在 HashSet 中,我们存储 对象
重复值它不允许 重复键,但 允许重复值它不允许 重复值
Null 值它可以包含 单个 null 键多个 null 值它可以包含 单个 null 值
插入方法HashMap 使用 put() 方法将元素添加到 HashMap 中。HashSet 使用 add() 方法将元素添加到 HashSet 中。
性能HashMap 比 HashSet 更快,因为值与唯一键相关联。HashSet 比 HashMap ,因为成员对象用于计算哈希码值,这对于两个对象来说可能是相同的。
对象数量在 add 操作期间只创建 一个 对象。在 put 操作期间创建 两个 对象,一个用于 ,一个用于
存储机制HashMap 内部使用 哈希 来存储对象。HashSet 内部使用 HashMap 对象来存储对象。
用途当不需要维护 唯一性 时,总是优先选择。当需要维护数据 唯一性 时使用。
示例{a->4, b->9, c->5} 其中 a, b, c4, 9, 5 是与键关联的 {6, 43, 2, 90, 4} 它表示一个集合。

让我们通过程序来理解这些差异。

HashMap 示例

在下面的示例中,当我们使用相同的键和不同的值添加重复元素时,该键的先前值将被新值替换。

当我们使用相同的键和相同的值添加重复元素时,键值对不会第二次存储。

输出

Difference between HashSet and HashMap class in Java

HashSet 示例

在下面的示例中,我们可以看到 HashSet 中不存储重复值,并且 null 值只存储一次。

输出

Difference between HashSet and HashMap class in Java
下一个主题Java 教程