Collection为一组对象,这些对象也称为 collection 的元素,常用的四大子接口为Deque,List,Queue,Set。
四个子接口的异同:
接口(常用) | List(序列) | Queue(队列) | Deque(双端队列) (继承Queue) | Set(集合) | |
元素是否存在重复 | 存在重复 | 不存在重复 | |||
操作 | 任意位置都可添、取、改元素 | 头尾操作, 队头可取元素, 队尾可添加元素 | 头尾操作, 队头、队尾都可添、取元素 | 添加元素时,hashcode();会set哈希码值 |
类(常用) | 底层数据结构 | 实现的接口 | |
双向循环链表 | |||
ArrayList | 动态数组 | List<E> | |
Vector | 动态数组 | List<E> | |
Stack(继承Vector) | 动态数组 | List<E> | |
ArrayDeque | 数组循环队列 | ||
PriorityQueue(优先队列) | 最小堆(数组) | Queue<E> | |
HashSet | 哈希表+单链表 | Set<E> | |
LinkedHashSet(继承HashSet) | 哈希表+双重链表 | Set<E> | |
TreeSet | 红黑树(由二分搜索树演变) | Set<E> |