1.发现在Map和Set中有很多相类似的实现类名
Set Map 算法--------------------------------------------------------------------------
HashSet HashMap 哈希表
TreeSet TreeMap 红黑树
LinkedHashSet LinkedHashMap 哈希表/链表
等...
--------------------------------------------
如果集合前缀相同,说明底层算法是一样的,现在单独使用HashSet和HashMap来研究.
通过阅读源代码:发现,相同算法的Set底层用的是相同算法的Map.
把Set的集合对象作为Map的key,再使用一个Object常量作为为value.
因此:更符合我们说的在Map中,所有的key就是一个Set集合.
通过源码看到的HashSet类中有一个全局变量HashMap map,然后在HashSet的构造函数中有一句话map=new HashMap(),说明在创建HashSet类对象的时候底层创建了一个HashMap对象,接着在add(E e)方法中,增加一个元素是,其实是往这个HashMap对象中添加数据,key就是这个元素,value是new Object.