集合框架UML图
从图中可以看出集合框架分为2大模块 Collection和Map。
Collection主要子类接口分为List、Set、Quene。
List的特点是 集合中的元素可重复,因实现ListIterator接口所以提供双向迭代的功能。 以下是相关List的具体实现类
类名使用对象是否实现同步默认大小默认扩容大小Vector数组(Object[])是10100%ArrayList数组(Object[])否1050%LinkedList链表(内部静态类Node)否0无Stack在Vector类的基础上增加了栈的先进后出的规则。
Set的特点是 集合中的元素不可重复 HashMap的数组长度总是2的多少次方
类名使用对象是否实现同步默认大小默认扩容大小特点HashSet数组加链表否16100%元素插入无序,查询快TreeSet树状结构否0无元素有序插入,也能按照给定规则进行比较插入LinkedHashSet在HashSet的基础上在每次增加元素,删除元素时,用一条链表维护元素插入时的先后顺序。
Map是以key-value形式存储的集合
类名使用对象是否实现同步默认大小默认加载因子默认扩容大小(在不超过最大值时)特点HashMap数组加链表否160.75f100%元素无序插入,访问快HashTable数组加链表是110.75f100%+1使用Enumeration进行迭代TreeMap树状结构否160.75f100%有序插入IdentityHashMap数组否32无100%只要Key!=Key(即地址不等即可)WeakHashMap数组加链表否160.75f100%弱引用Key(即使在内存充足时,只要这个Key不存在强引用,就会被GC给回收掉。)Queue定义了队列的性质—先进先出
ArrayDeque—双向队列
PriorityQueue—优先级队列
以上2种队列均采用的是数组实现的。
