HashSet和HashMap的区别
*HashMap* | *HashSet* |
HashMap实现了Map接口 | HashSet实现了Set接口 |
HashMap储存键值对 | HashSet仅仅存储对象 |
使用put()方法将元素放入map中 | 使用add()方法将元素放入set中 |
HashMap中使用键对象来计算hashcode值 | HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false |
HashMap比较快,因为是使用唯一的键来获取对象 | HashSet较HashMap来说比较慢 |
以上是别人总结的区别,下方是我自己今天查看源码记录的一点,不知道是否正确,但是可以更好的记住,HashSet的值不能重复、HashMap的Key不能重复这点更好一个方法
- HashSet虽然是实现于Set接口,但是存储数据时实际用的是HashMap集合
- 这样HashSet中的Value与HashMap的key就建立了关联
- 得出HashSet 的key 等价于HashMap中的value
- 所以我们只要记住这两个集合的一个,另一个也就可想而知了。