java常用集合实现细节:
3.1 Set和Map
Set代表一种集合元素无序、集合元素不可重复的集合,Map则代表一种由多个key-value组成的集合。Map集合是Set集合的扩展。
3.1.1 Set和Map的关系
Set集合的继承体系:
Map的集合继承体系:
Set集合和Map集合的对应关系:
Set---Map
EnumSet---EnumMap
SortedSet---SortedMap
TreeSet--- TreeMap
NavigableSet---NavigableMap
HashSet---HashMap
LinkedHashSet---LinkedHashMap
Map集合的特征:所有key不能重复,key之间没有顺序。如果将Map集合的key集中起来,这些key就组成了一个Set集合。Map集合提供了 Set keySet()来返回所有key组成的Set集合。 即Map集合的所有key将具有Set集合的所有特征,只要把Map的所有key集中起来,它就是一个Set集合,从而实现了从Map到key的转换。
还可以实现从Set到Map的扩展:对于Map而言,相当于每个元素都是key-value对的Set的集合。
Map集合的另一种理解:如果把Map集合的value当成key的"附属物",那么Map集合在保存key-value对时只考虑key即可。
Map集合本质上是一个关联数组。
把Set扩展成Map:新增定义一个SimpleEntry类,该类代表一个key-value对;当Set集合的集合元素都是SimpleEntry对象时,该Set集合就能被当成Map使用。
例:将一个Set集合扩展成Map集合