Java|编程体系结构:Java集合容器


Java|编程体系结构:Java集合容器
文章图片
Java|编程体系结构:Java集合容器
一、集合容器简介集合容器是Java开发中最基础API模块 , 通常用来存储运行时动态创建的元素 , 基本特点如下:

  • 泛型特点 , 存储任意类型对象;
  • 动态扩容 , 存储任意数量对象;
这里对存储数量是受到程序和内存等环境制约的 , 从List的get()方法中可以看出 , index的范围是Integer.MAX_VALUE 。
二、API体系三大核心接口:List、Set继承Collection Map独立接口
List与Set体系

List体系核心API:ArrayList , LinkedList、Vector
Set体系核心API:HashSet、TreeSet、LinkedHashSet
Queue队列API:PriorityQueue、LinkedHashSet
Map体系

Map体系核心API:HashMap、LinkedHashMap、TreeMap、Hashtable
三、基础容器详解1、核心内容

  • 元素存储 , 增删改查判断等基础用法
  • 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中定义排序规则 。