HashMap和HashSet的区别

学习源码,是再正确不过的方式了。

咱们看一下HashSet的源码,底层是基于HashMap实现的。
HashMap和HashSet的区别

HashSet的源码很少,除了clone()writeObject()readObject() 是HashSet不得不自己实现,其他都是调用HashMap方法。

HashMap HashSet
实现了Map接口 实现Set接口
存储键值对 仅存储对象
调用 put()向map中添加元素 调用 add()方法向Set中添加元素
HashMap使用键(Key)计算Hashcode HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性

相关文章: