java集合框架源码_源码分析Java集合框架系列-Java集合框架综述

本系列文章将主要从源码角度分析和讲解Java集合框架的主要架构,各个类的实现和用法。一来可以帮助Java初学者更新的掌握Java集合类,二来可以让自己重新审视这些类的实现细节有助于提高自己的编程能力。

什么是集合框架?

集合框架是一个操作集合元素的一个统一的架构。主要包括一些内容:

接口 表示一个数据结构的抽象,统一定义相关操作方法

实现 具体数据结构的实现类

算法 实现数据结构用到的相关算法

首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能)。Java中的集合框架定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦。

其实说白了,可以把一个集合看成一个微型数据库,操作不外乎“增删改查”四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了。

继承关系

如下图所示,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口

23da2d94d72ccc03a8dcf4845093b6ae.png

顶层接口

Iterator 一个迭代器,所有集合类提供 iterator 的实现 ,Iterator接口如下:

public interface Iterator {

boolean hasNext();

E next();

void remove(); //optional

}

Collection 所有接口的根接口,代表一组元素的集合。Java并没有提供这个接口直接的实现,而是提供了三个子接口

List    表示一个有序的集合(an ordered collection),允许有重复元素

Set    不允许有重复元素的集合

Queue 用于在处理之前保存多个元素的集合。提供了一些额外的insertion, extraction, and inspection 操作

Map  包含了key-value对。Map不能包含重复的key,但是可以包含相同的value 每个key包含最多一个Value值。

List接口

List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢

实现类

ArrayList

LinedList

Set接口

实现类

HashSet

TreeSet

Map接口

实现类

HashMap

TreeMap

LinkedHashMap

实现集合接口的类一般遵循+的命名方式,通用的集合实现类如下表:

Interface

Hash Table

Resizable Array

Balanced Tree

Linked List

Hash Table + Linked List

Set

HashSet

TreeSet

LinkedHashSet

List

ArrayList

LinkedList

Deque

ArrayDeque

LinkedList

总结

有点仓促,后续会陆续分析具体类的源码实现。欢迎大家关注留言,如有错误之处请指正。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值