1. Collection,List, Map, Queue

1. java集合框架体系结构图

2. Collection派生的子接口

其中最重要的子接口是:

1)List

表示有序可重复列表,重要的实现类有:ArrayList, LinkedList

ArrayList特点:底层数组实现,随机查找快,增删慢。

LinkedList特点:底层双向链表实现,不支持随机查找,增删快。

2)Set

表示无序不重复列表, 重要的实现类有:HashSet, TreeSet, LinkedHashSet
HashSet: 最常见的Set实现,底层使用hash表实现。具有非常好的读取和查找性能。
TreeSet: 底层采用平衡二叉搜索树实现(red-black tree)。 元素唯一且有序。用在需要保证元素顺序的场景。
LinkedHashSet: 底层采用hash表和链表实现,链表记录元素的插入顺序。

3)Queue

表示队列, 重要的实现类有:LinkedList, ArrayDeque,PriorityQueue
LinkedList: 除了是一个线性链表,LinkedList也可以用来表示队列,它也实现了Deque(双端对了)接口。
ArrayDeque: 底层使用数组实现的双端队列
PriorityQueue: 即优先级队列,保存队列元素的顺序不是按照插入的顺序,而是按照优先级排序。

3. Map派生的子接口

其中最重要的实现类有:

1)HashMap, LinkedHashMap, TreeMap
HashMap: 基于hash表的实现(拉链法, 每个bucket中出现hash碰撞时使用链表串联,但为了效率,当链表元素大于8时,升级为red-black tree)

LinkedHashMap: 继承自HashMap, 内部维护了一个链表,用于保存元素的插入顺序(或访问顺序),使用迭代器时可按顺序迭代。

TreeMap: 实现了SortedMap, 能够按key排序。 底层实现时red-black tree。

4. concurrent包新增集合实现类

doug lea在concurrent包中新增了若干有用的集合实现类,主要包括:
1)List

CopyOnWriteArrayList: 一个线程安全的ArrayList版本

2)Set

CopyOnWriteArraySet

3) Queue

ConcurrentLinkedQueue, ConcurrentLinkedDeque: 链表版本队列的线程安全版本

BlockingQueue: 阻塞队列接口,以阻塞的方式插入/取出队列元素,非常有用,常用于生产消费者模式。相关实现类有:ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue, SynchronousQueue, TransferQueue, DelayQueue

BlockingDeque: 跟BlockingQueue类似,只是它是一个双端队列。 相关的实现类有: LinkedBlockingDeque

4) Map

ConcurrentHashMap: HashMap的线程安全版本(非常重要的类,面试重点)

ConcurrentSkipListMap: 支持并发的跳表Map,key有序

5. 已废弃接口和实现类

stack, vector, hashtable。 这些都是jdk1.1中的集合类,已经废弃,项目中不要使用。

相关推荐
霸道流氓气质1 天前
Prompt 版本控制与 A/B 测试实战:语义版本管理、一致性哈希分流与 Thompson Sampling 的 Java 生产级实现
java·prompt·哈希算法
大鹏说大话1 天前
C++ STL 容器怎么选?vector、list、map、unordered_map 对比
开发语言·c++·list
黄金龙PLUS2 天前
如何基于置换算法来设计对称加密算法
算法·网络安全·密码学·哈希算法·同态加密
夏幻灵2 天前
每日一题:LeetCode 20:有效的括号——栈与哈希映射详解
算法·leetcode·哈希算法
夏幻灵2 天前
每日一题:LeetCode 1:两数之和——从暴力枚举到 Map 哈希表优化
算法·leetcode·散列表
积流成海3 天前
一致性哈希原理与实现:分布式系统负载均衡
算法·负载均衡·哈希算法·哈希函数·盘子工具站
程序员清风3 天前
哈希表:从键值映射到高效查找
数据结构·哈希算法·散列表
by209993 天前
list:迭代器与资源管理实现的综合叙述(下)
数据结构·c++·笔记·list
啦啦啦啦啦zzzz3 天前
一致性哈希
服务器·算法·哈希算法·c++20·分布式存储
蒸蒸yyyyzwd3 天前
秋招笔记day58
算法·哈希算法