美文网首页Java 集合源码解析系列-- 基于JDK12
Java 集合源码剖析系列01: 总体框架

Java 集合源码剖析系列01: 总体框架

作者: Mr_Ares | 来源:发表于2019-04-25 10:50 被阅读0次

    前言:

    • Java, Android 开发也X年有余了,只是平时写业务居多,对java 集合技术只是看看,未有总结,基础不够扎实。虽然集合框架经常用,但是我们还是要仔细看看原理,不仅要会用,也要知道为什么要这么用,夯实基础,才能突破自己技术瓶颈。

    Java集合简介:

    • Java集合是java提供的工具包:
      包含了常用的数据结构:数组、链表、队列、栈、映射等。工具包位置是java.util.*。
      Java集合主要可以划分为 5个部分
      List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays和Collections)。

    **Java集合整体框架图(如下) 一图胜千言 **:

    image.png

    说明
    从上面整体结构图可以看出:集合类主要分为两大类:Collection和Map。

    1. Collection 是高度抽象出来的一个接口,它包含了集合的基本操作和属性。
      Collection主要分为List和Set两大分支。

    (1)List 是一个接口,表示一个列表;
    每一个元素都有它的索引。第一个元素的索引值是0,其中的元素可以重复;它的实现类主要有 ArrayList、LinkedList、Stack、 Vector ;其中 LinkedList还是实现了Queue接口,因此也可以作为队列使用。

    (2) Set 接口是一个不允许有重复元素的集合(通过hashcode和equals函数保证)。
    Set的实现类有HastSet和TreeSet;HashSet是通过Map中的HashMap实现的;TreeSet 是通过Map中的TreeMap实现的;TreeSet还实现了SortedSet接口,因此是有序的集合。

    1. Map 是一个映射接口,其中的每个元素都是一个key-value键值对;AbstractMap实现了Map接口中的大部分函数,TreeMap、HashMap、WeakHashMap等实现类都通过继承AbstractMap来实现; Hashtable虽然继承于Dictionary,但它实现了Map接口。

    2. 迭代器
      Iterator 是遍历集合的迭代器(不能遍历Map,只用来遍历Collection),从上图可以看到Collection依赖 于Iterator,是因为Collection的实现类都要实现iterator()函数,返回一个Iterator对象。
      ListIterator 是专门为遍历List而存在的。
      Enumeration 是JDK 1.0引入的抽象类。作用和Iterator一样,也是遍历集合;但是Enumeration的功能要比Iterator少;它只能再Hashtable、Vector和Stack中使用。

    3. 最后我们看看Arrays和Collections。它们是操作数组、集合的两个工具类。

    我们对上面的集合整体框架了解之后,我们接下来对每个类分别进行分析。

    collection.jpg

    JDK12 API : https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/package-summary.html

    请点赞!因为所有的鼓励是我坚持的最大动力!

    相关文章

      网友评论

        本文标题:Java 集合源码剖析系列01: 总体框架

        本文链接:https://www.haomeiwen.com/subject/bqjagqtx.html