美文网首页
编程体系结构(03):Java集合容器

编程体系结构(03):Java集合容器

作者: 知了一笑 | 来源:发表于2020-09-13 14:44 被阅读0次

    本文源码:GitHub·点这里 || GitEE·点这里

    一、集合容器简介

    集合容器是Java开发中最基础API模块,通常用来存储运行时动态创建的元素,基本特点如下:

    • 泛型特点,存储任意类型对象;
    • 动态扩容,存储任意数量对象;

    这里对存储数量是受到程序和内存等环境制约的,从List的get()方法中可以看出,index的范围是Integer.MAX_VALUE。

    二、API体系

    三大核心接口:List、Set继承Collection, Map独立接口

    List与Set体系

    03-1.png

    List体系核心API:ArrayList,LinkedList、Vector

    Set体系核心API:HashSet、TreeSet、LinkedHashSet

    Queue队列API:PriorityQueue、LinkedHashSet

    Map体系

    03-2.png

    Map体系核心API:HashMap、LinkedHashMap、TreeMap、Hashtable

    三、基础容器详解

    1、核心内容

    03-3.png
    • 元素存储,增删改查判断等基础用法
    • API方法中线程安全问题
    • 容器初始化大小与动态扩容机制
    • 底层数据结构特点
    • 同一接口或者不同接口体系容器对比

    基本熟练使用并理解集合容器,需要知道如上几块内容:API基础用法,线程安全问题;容器大小与扩容;结构特点,数组、链表、哈希表;

    2、API体系详解

    Collection:集合容器的根接口,定义公共方法;

    List体系

    • ArrayList

    维护Object数组实现,特点:查询快,增删慢,非线程安全,所以效率高。

    • LinkedList

    底层维护链表数据结构实现,特点:查询慢,增删快,非线程安全,所以效率高。

    • Vector

    底部维护Object数组,实现和ArrayList一样,但是Vector是线程安全,效率低。

    Set体系

    • HashSet

    底层是使用了哈希表来支持的,特点:存取速度快,元素唯一且无序。

    • LinkedHashSet

    底层数据结构是链表和哈希表,链表保证元素有序性,哈希表保证元素唯一性,非线程安全。

    • TreeSet

    数据结构是红黑树,如果元素具备自然顺序的特性,那么就按照元素自然顺序的特性进行排序,或者基于比较器自定义排序。

    Map体系:

    Map接口的实现类,具备的特点:存储的数据都是以键值对的方式,键不可以重复,值可重复。

    • HashMap

    底层使用hashCode表来实现向HashMap中添加元素,允许使用null值和null键,不保证元素的顺序固定。

    • TreeMap

    TreeMap:基于二叉树的数据结构实现的,会对具备自然特性的键进行排序存储:元素的键具备自然特性,直接排序存储;不具备自然特性,实现Comparable接口,在ComparaTo中定义排序规则。

    • HashTable

    线程安全,相对效率低,不允许使用null值。

    3、容器遍历

    • 基于for、foreach、while流程控制
    • Iterable迭代器核心接口
    • Lambda表达式:遍历、分组、查询

    推荐阅读:架构设计系列

    标题
    架构设计:单服务.集群.分布式,基本区别和联系
    架构设计:分布式业务系统中,全局ID生成策略
    架构设计:分布式系统调度,Zookeeper集群化管理
    架构设计:接口幂等性原则,防重复提交Token管理
    架构设计:缓存管理模式,监控和内存回收策略
    架构设计:异步处理流程,多种实现模式详解
    架构设计:高并发流量削峰,共享资源加锁机制
    架构设计:分布式服务,库表拆分模式详解
    架构设计:分布式事务①概念简介和基础理论
    架构设计:基于电商交易流程,图解TCC事务分段提交
    架构设计:基于消息中间件,图解柔性事务一致性

    相关文章

      网友评论

          本文标题:编程体系结构(03):Java集合容器

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