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

  • 相关阅读:
    Ubuntu 上 hi3531 交叉编译环境 arm-hisiv100nptl-linux 建设过程
    计算机系统巡回赛的深入理解(三)机器级表示计划
    iOS设备定位
    NDK/JNI学习--进口hello-jniproject
    IP Camera 和 Web Camera 差分
    ORA-00020的思考
    SSL&TLS传输层加密协议实现图解--(重要)
    iOS 中可用的受信任根证书列表
    iOS 9 中可用的受信任根证书列表
    图解SSL/TLS协议
  • 原文地址:https://www.cnblogs.com/joeCqupt/p/7107478.html
Copyright © 2011-2022 走看看