JDK集合框架结构分析(二)

集合框架结构分析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中 所有的基本数据结构都介绍完,接下来每个数据结构深入剖析。

posted @ 2017-07-02 22:10  风中小蘑菇  阅读(156)  评论(0编辑  收藏  举报