java集合存储结构特点,继承关系,存储过程

 各类对比

集合类 存储结构 存储过程 特点 遍历
ArrayList 数组 如果没有向集合中添加任何元素时,容量0,添加一个元素之后,容量10,每次扩容大小时原来的1.5倍。 有序

下标

迭代器

增强for

Vector 数组   有序、线程安全
LinkedList 双向链表 添加新元素会创建一个Node,将其插入到双向链表中 删除、添加效率高、查找效率低
HashSet 数组+链表+红黑树 根据hashcode计算存储的位置,如果该位置为空,则直接保存,如果该位置不为空,执行equals方法,判断要存入的元素与本来存在的元素是否相等,若为true认为是重复,否则形成或插入链表 无序、不能重复、无下标  
TreeSet 红黑树

就是TreeMap将value设置为null,值的集合

HashMap 数组+链表+红黑树

(1)HashMap刚创建时,table是null,为了节省空间,当添加第一个元素时,table容量调整为16

(2)当元素个数大于阈值16*0.75=12时,会进行扩容,扩容后的大小为原来的2倍,目的是减少调整元素的个数

(3)jdk1.8当每个链表长度大于8,并且数组元素个数大于64时,会调整为红黑树,目的提高执行效率

(4)jdk1.8 当链表长度小于6时,调整成链表

(5)jdk1.8之前,链表是头插入,jdk1.8以后是尾查入

无序、无下标、键不可以重复,值可以重复

entrySet()

keyset()

增强for

TreeMap 红黑树

基于排列顺序实现元素不重复

实现了SortedSet接口,对集合元素自动排序

元素对象的类型必须实现Comparable接口,指定排序规则

通过CompareTo方法确定是否为重复元素

体系结构图

java集合存储结构特点,继承关系,存储过程