集合框架结构分析02
在学习之前最好有 泛型、泛型协变性 方面的知识
Map接口:

这里需要的是这里的 Map 接口中定义了一个Entry 接口 (接口中内定义接口 是允许的)
Map接口一个抽象类实现 AbstractMap:

这个抽象类中 添加了一些新的方法同时提供了两个 Entry 接口的实现 一个是SimpleEntry一个是SimpleImmutableEntry 后者表示 不可变的 不支持setValue方法
接口 SortMap继承自 Map接口:

SortedMap 扩展了Map 定义了一些其他的方法
接口 NavigableMap 继承自 SortedMap (Navigable表示 可操纵的):

NavigableMap 继续扩展了 SortedMap
接下来就是 第一个Map类的介绍:TreeMap:

这个类的方法、实现结构 很复杂:

它的 Entry类是 一个 红黑树结构(某种平衡二叉树) 这里只介绍不深入讲解
HashMap 类介绍:

Java中的 Hash结构的实现是使用的是 分离链接法
这个类的实现也是很复杂,这个类的 Entry 接口实现类是一个链表的数据结构
HashMap 中的 hash 算法:

由于Set的底层实现方式是使用Map,所以Set也归类到Map这里讲述
SET 接口继承自Collection

SET提供一个抽象类实现:AbstractSet:

SortedSet接口 继承自Set接口:

NavigableSet接口 继承自SortedSet接口:

介绍第一个Set类:TreeSet:

TreeSet 其实是由一个TreeMap实现的:

HashSet 介绍的第二个Set类:

这个类其实是由HashMap实现的

最后介绍一个 优先队列:PriorityQueue

它 使用一种 二叉堆 数据结构(一种完全二叉树,任意根节点小于它的所有后裔)
到此为止 java中 所有的基本数据结构都介绍完,接下来每个数据结构深入剖析。