在Java语言中,所有的集合类继承自两个基本接口:Collection和Map。
继承树如下:
具体的集合有:
集合类型 | 描述 |
ArrayList | 一种可动态增长和缩减的索引序列,采用整数随机访问时,速度快,插入删除元素时,需要移动前面或后面的元素,效率低 |
LinkedList | 可以在任一位置进行高效的插入和删除的有序序列,采用整理索引访问元素时,效率低,不支持快速随机的访问 |
ArrayDeque | 用循环数组实现的双端队列 |
HashSet | 散列表,没有重复元素的无序集合,根据对象的hashcode可以快速的查找需要的对象。不关心集合中元素的顺序时,用hashset |
TreeSet | 有序集合,使用红黑树实现的,对集合进行遍历时,按照排序后的顺序呈现。查找时比hashset慢点 |
EnumSet | 包含枚举类型的集合 |
LinkdeHashSet | 可记住元素插入顺序的集合 |
PriorityQueue | 允许高效删除最小元素的集合。使用堆的数据结构,典型例子是:任务调度 |
HashMap | 存储键值对,无序,查找速度快 |
TreeMap | 键值有序排列的映射表,有序,查找速度稍慢 |
EnumMap | 键值属于枚举类型的映射表 |
LinkedHashMap | 记住键值项添加次序的映射表 |
WeakHashMap | 当某个键不再使用,其值无用武之地,但映射表还在活动中时可以被垃圾回收器回收的映射表 |
IdentityHashMap | 用==,而不是用equals比较键值的映射表 |