- 常见数据结构的特点
- 集合体系
常见数据结构的特点
- 在聊常用集合之前,得先来看看常见的数据结构的特点,毕竟集合的实现可离不开各个数据结构的;
① 数组(Array): 有索引,内存连续分配,查询快,增删慢;
② 链表(linked list): 内存不连续,增删快,查询慢;
③ 栈(stack): 出口与入口是同一个,先进后出;
④ 队列(queue): 出口与入口各占一侧,先进先出;
⑤ 树结构(tree): 查询速度相当快。
集合体系
- 集合分为单列集合(Collection)与双列集合(Map);
Collection集合
- Collection是单列集合的根接口;
- List集合特点是: 有序(存取一致),有索引,可重复;
- List接口常用方法:(增add,删remove,改set,查get);
- Set集合特点:无索引,不可重复(唯一)。
ArrayList集合(推荐)
- 底层数据结构: 数组;
- 数组: 查询快,增删慢;
- 查询快原因: 有索引,元素内存连续分配;
- 线程不安全,效率高。
LinkedList集合
- 底层采用链表的数据结构;
- 链表的数据结构: 增删快,查询慢。
Vector集合
- 底层数据结构: 数组;
- 数组: 查询快,增删慢;
- 线程安全,效率低。
HashSet集合
- 数据结构:哈希表(数组+链表/红黑树(链表节点数量>8));
- 存储的元素无序,不可重复。
LinkedHashSet集合
- 数据结构:哈希表+链表;
- 存储的元素有序(按存取顺序),不可重复。
TreeSet集合
- 数据结果:红黑树;
- 有序,可以自定义比较器排序。
Map集合
HashMap集合
- 数据结构:哈希表;
- 无序,线程不安全,支持null值。
LinkedHashMap集合
- 数据结构:哈希表+链表;
- 存取顺序一致,支持null值。
HashTable集合
- 数据结构:哈希表;
- 线程安全,不支持null值,效率低。
TreeMap集合
- 数据结构:红黑树;
- 有序,主要用于排序(自然排序或者自定义比较器排序)。
了解各个集合的数据结构和特点主要是为了平时在使用的时候能根据实际场景需要选择合适的集合,比如增删多,查询少的就用LinkedList等;如果说记不清特点,不知道用哪个了,那么就用ArrayList和HashMap;
注意:本文归作者所有,转载请注明出处