好记性不如烂笔头,特将Collection中的HashMap和HashSet的区别记录一下
- Collection
Map:HashMap*、ConcurrentHashMap、TreeMap、Hashtable
List:ArrayList*、LinkedList
Set:HashSet*、TreeSet
- 对比
ArrayList相比Map,Set应该更为熟悉
对于Map Set的HashMap , HashSet
我经常会背的一句是HashMap不允许有重复的键,可以允许有重复的值。HashSet不允许有重复元素。
- 区别
今天看了一下源码,对比后发现 :
- HashMap用于存储键值对,而HashSet用于存储对象
- HashMap中使用put()将元素加入map中,而HashSet使用add()将元素放入set中。
其根本原因是HashSet内部是存储到HashMap中,add方法是存入到HashMap的key,而value只是一个new Object;
以下是部分源码