元素 elements | 实现方式 implementation | 插入速度 put speed | 删除速度 delete speed | 顺序 order | 特性 features | 扩容因子 factor | 描述 describe |
---|---|---|---|---|---|---|---|
ArrayList | 数组 | 慢 | 慢 | 有序 | 可存放重复元素 | 0.5 | 非线程安全,读取快 |
LinkedList | 链表 | 快 | 快 | 有序 | prev,next | 0.5 | 只需要修改前后节点指针,非线程安全 |
Vector | 数组 | 较慢 | 较慢 | 有序 | 与ArrayList基本一致 | 0.5 | 加了synchronized同步锁,线程安全 |
CopyOnWriteArrayList | 数组 | 慢 | 慢 | 无序 | CopyOnWrite机制 | 0.5 | 线程安全,相对直接用synchronized速度快 |
HashMap | 哈希表,二叉树 | 快 | 快 | 无序 | key-不重复 | 0.75 | 1.存储无序,默认根据key字母顺序排列 2.查询慢 3.非线程安全 |
HashSet | 哈希表,二叉树 | 快 | 快 | 无序 | object-不重复,存放value与HashMap key关联 | 0.75 | 1.内部使用HashMap存储 2.查询慢 3.非线程安全 |
TreeMap | 哈希表,二叉树 | 一般 | 一般 | 有序[Comparator] | key-不重复 | 0.75 | 1.存储无序,默认根据key字母顺序排列 2.查询慢 3.非线程安全 |
TreeSet | 哈希表,二叉树 | 一般 | 一般 | 有序[Comparator] | object-不重复,存放value与TreeMap key关联 | 0.75 | 1.内部使用HashMap存储 2.查询慢 3.非线程安全 |
ArraySet [Android 23新增] | 数组 1.hash值数组; 2.元素本身数组; | 快 | 快 | 无序 | 唯一 | 0.5 | 1.runtime-相对于HashSet性能高;[优化内存] 2.删除时对使用不超过1/3的容量进行收缩 3.非线程安全 |
CopyOnWriteArraySet | 内部使用CopyOnWriteArrayList实现 | 慢 | 慢 | 无序 | 唯一 | 0.5 | 线程安全 |
ConcurrentSkipListMap | 与TreeMap一致 | 一般 | 一般 | 有序 | 唯一 | 0.75 | 线程安全 |
ConcurrentSkipListSet | 用ConcurrentSkipListMap实现 | 一般 | 一般 | 有序 | 唯一 | 0.75 | 线程安全 |
Queue | 队列 | - | - | - | FIFO | - | - |
Deque | 队列、栈 | - | - | - | FIFO/LIFO | - | - |
常用数据结构比较
最新推荐文章于 2025-05-28 19:29:44 发布