常见的面试问题之一是“HashMap和HashSet有什么区别”..在我们真正看到差异之前,请先简要介绍两者。
爪哇 哈希图 :
- 爪哇 中的HashMap
- 哈希图 如何在Java中工作
- 哈希图 中的hash和indexfor方法
- 爪哇 中的哈希码和equals方法
- 如何通过键和值对HashMap进行排序
- 哈希图 和Hash之间的区别 组
- 哈希图 和Hashtable之间的区别
- 如何遍历HashMap
哈希图
哈希图 实现了Map接口,该接口将键映射到值,它不同步且也不是线程安全的。不允许重复的键,并且允许空键以及值。有关更多详细信息,您还可以阅读 哈希图 如何在Java中工作.
1 2 3 4 5 |
哈希图 < 英格 , 串 > 员工哈希图= 新 哈希图 < 整数 , 串 >(); 员工哈希图. 放 (1, “阿尔伯特” ); 员工哈希图. 放 (2, “约翰” ); |
哈希集
哈希集 实现了Set接口,该接口不允许重复值,它不同步并且也不是线程安全的。有关更多详细信息,您还可以阅读 哈希集 如何在Java中工作.
1 2 3 4 5 6 |
哈希集 employeeSet= 新 哈希集 (); employeeSet. 加 ( “阿尔伯特” ); employeeSet. 加 ( “阿尔伯特” ); employeeSet. 加 ( “约翰” ); |
上面的employeeSet中将包含2个元素,因为Set不允许重复值。
加 方法用于将元素添加到HashSet中。如果返回true,则成功添加元素,但是如果返回false,则尝试插入重复值。
1 2 3 |
上市 布尔值 加 ( 目的 o) |
关于HashSet的一件主要事情是我们要在HashSet中添加的对象必须实现Hashcode()和equals()方法,以便我们可以检查重复值。如果要向HashSet中添加自定义对象,则必须重写()Hashcode( )和equals()方法,如果我们不重写,则object将采用默认实现,这可能是不希望的。
哈希图 与HashSet:
参数
|
哈希图
|
哈希集
|
---|---|---|
接口
|
这是它们之间的核心区别。HashMap实现Map接口
|
哈希集 实现Set接口
|
数据存储方法
|
It stores data in a form of key->value pair.So it uses 放 (key,value) method for storing data
|
它使用add(value)方法存储数据
|
哈希图 允许重复值,但不允许重复键
|
哈希集 不允许重复值。
|
|
性能
|
它比哈希集更快,因为使用唯一键存储值
|
它比HashMap慢
|
哈希码计算
|
在哈希图中,使用键对象计算哈希码值
|
在这种情况下,哈希码是基于值对象计算的。对于两个值对象,哈希码可以相同,因此我们必须实现equals()方法。如果equals()方法返回false,则两个对象是不同的。
|
请通过 爪哇 核心面试题 了解更多面试问题。
哈希码计算
在哈希图中,使用键对象计算哈希码值
在这种情况下,哈希码是基于值对象计算的。对于两个值对象,哈希码可以相同,因此我们必须实现equals()方法。如果equals()方法返回false,则两个对象是不同的。
这不是此处所写的正确区别。请更正。
毫无疑问,这是非常有用的教程。每个主题都有详细描述。感谢您提供如此出色的教程。