如果你看过HashSet
源码的话就应该知道:HashSet
底层就是基于HashMap
实现的。HashSet
的源码⾮常⾮常少,因为除了clone()
、writeObject()
、readObject()
是HashSet
⾃⼰不得不实现之外,其他⽅法都是直接调⽤HashMap
中的⽅法。
HashMap | HashSet |
---|---|
实现了Map 接⼝ |
实现Set 接⼝ |
存储键值对 | 仅存储对象 |
调⽤put() 向map 中添加元素 |
调⽤add() ⽅法向Set 中添加元素 |
HashMap 使⽤键(Key )计算hashcode |
HashSet 使⽤成员对象来计算hashcode 值,对于两个对象来说hashcode 可能相同,所以equals() ⽅法⽤来判断对象的相等性 |
留言