Java 集合源码解析系列-- 基于JDK12

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

2019-04-25  本文已影响0人  Mr_Ares

前言:

Java集合简介:

**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

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

上一篇 下一篇

猜你喜欢

热点阅读