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

  • 相关阅读:
    2019年Pycharm最新激活码_学生党适用
    Day14_分享昨天看到的一句话
    监督学习算法_k-近邻(kNN)分类算法_源代码
    Python学习需要安装的工具
    Python基础学习资料推荐
    总结一下公司项目使用各种较新的前端技术和 Api 的一些经验。
    由 Session 和 Cookie 的区别说起
    我理解的正确的代码
    回忆我是如何赢得一次踢毽子比赛
    日常的例子说明 throttle 和 debounce 的区别
  • 原文地址:https://www.cnblogs.com/joeCqupt/p/7107478.html
Copyright © 2020-2023  润新知