Java中的常见集合特性与数据结构关系、集合选用原则

Java 1223℃

1.集合特性与数据结构对照表

接口 实现类 数据结构 是否有序 元素能否重复 特点 备注
Collection
单列集合
List ArrayList 数组Array 有序 可重复 查询快,增删慢,线程不安全,效率高
Vector 数组Array 有序 可重复 查询快,增删慢,线程安全,效率低 已淘汰
LinkedList 链表linked 有序 可重复 查询慢,增删快,线程不安全,效率高
还实现了Deque接口,可做队列使用
Queue
队列
ArrayDeque 基于数组的双端队列,也可用于模拟栈 有序 可重复 可以代替stack实现栈结构
Set HashSet 哈希表hash 无序 不可重复 哈希表依赖两个方法
hashCode()、equals()
效率高
线程不安全
LinkedHashSet 链表+哈希表 有序 不可重复 链表保证有序,哈希表保证唯一
效率稍低
TreeSet 二叉树BinaryTree
之红黑树
有序 不可重复 根据比较的返回值保证唯一
有两种排序方式保证有序:
自然排序(实现Comparable接口)
比较器排序(使用Comparator对象)
效率低
EnumSet 专为枚举类设计 有序 不可重复 根据enum类内的定义顺序排序
set集合中效率最高
Map
双列集合
HashMap 哈希表hash 无序 key不可重复 线程不安全,效率高
Hashtable 哈希表hash 无序 key不可重复 线程安全,效率低 已淘汰
LinkedHashMap 链表+哈希表 有序 key不可重复 链表保证元素有序
哈希表保证元素唯一
效率低
TreeMap 二叉树BinaryTree
之红黑树
有序 key不可重复 根据比较的返回值保证唯一
使用排序方式保证有序
效率稍低

对于线程不安全的集合,应该通过Collections工具类对应的synchronizedXxx方法将其包装成线程安全的集合类。

2.关于集合选用原则

转载请注明:零五宝典 » Java中的常见集合特性与数据结构关系、集合选用原则