java中Hashmap和Hashset之间的差异

时间:2020-02-23 14:34:05  来源:igfitidea点击:

HashMap和Hashset之间有什么区别

Hashmap.

HashMap实现映射键映射到值的映射接口。
它不同步,而不是线程安全。
不允许键,允许NULL键以及允许值。
有关更多详细信息,我们还可以阅读HashMap如何在Java中使用。

HashMap<Interger,String> employeeHashmap=new HashMap<Integer,String>();
employeeHashmap.put(1,"Arpit");
employeeHashmap.put(2,"John");

hashset.

HashSet实现设置接口,不允许重复值。
它不同步,而不是Thread Safe.for More详细信息,我们还可以阅读Hashset如何在Java中使用。

HashSet employeeSet=new HashSet();
employeeSet.add("Arpit");
employeeSet.add("Arpit");
employeeSet.add("john");

上面的员工将其中包含2个元素,因为设置不允许重复值。
添加方法用于将元素添加到hashset.if它返回true然后成功添加元素,但如果返回false,则尝试插入重复值。

public boolean add(Object o)

关于Hashset的一个主要目的是我们要在HashSet中添加的对象必须实现HashCode()和equals()方法,以便我们可以检查重复值。
如果我们正在添加自定义对象到散列码,那么我们必须覆盖()覆盖()覆盖()覆盖()覆盖() )和等于()方法根据我们的需要。
如果我们不覆盖,那么对象将采取默认实现,这可能是不可取的。

hashmap vs hashset:

参数hashmaphashset
接口这是它们之间的核心差异.hashmap实现地图接口hashset实现set接口
存储数据的方法它以键 - >值对的形式存储数据。所以它使用Put(key,值)来存储数据它使用添加(值)用于存储数据的方法
重复hashmap允许重复值但不重复键hashset不允许重复值。
性能它比哈希集更快,因为值存储唯一键它比hashmap 慢
Hashcode计算在哈希映射哈希码值使用key对象在此,基于Value Object.hashcode计算两个值对象的哈希码,所以我们必须实现equals()方法。如果equals()方法返回false那么两个对象是不同的。