- 博客(2)
- 资源 (1)
- 收藏
- 关注
Java容器.xmind
container
Collection
标记: 顶级接口
List
标记: interface
ArrayList
标记: class
CRUD :
boolean add(E e)
boolean remove(Object o)
E set(int index, E element)
E get(int index)
底层数组实现,查询快,增删慢
LinkedList
标记: class
CRUD :
boolean add(E e)
E get(int index)
底层为链表,增删快,查询快
Vector
标记: class
底层数组实现,线程安全,速度太慢,没用
CopyOnWriteArrayList
标记: class
Set
标记: interface
HashSet
标记: class
CRUD :
boolean add(E e)
boolean remove(Object o)
底层哈希表,基于hashCode的equals的比较方式,线程不安全,存取速度快。
SortedSet
标记: interface
TreeSet
标记: class
实现comparable接口,元素是以二叉树的形式存放的。线程不安全
CopyOnWriteArraySet
标记: class
Queue
标记: interface
BlockingQueue
标记: interface
ArrayBlockingQueue
LinkedBlockingQueue
ConcurrentLinkedQueue
标记: class
Map
标记: 顶级接口
HashMap
标记: class
V get(Object key)
V put(K key, V value)
Set<K> keySet()
Set<Map.Entry<K,V>> entrySet()
线程不安全,速度快,允许存放null键,null值。
SortedMap
标记: class
TreeMap
对键进行排序
HashTable
标记: class
Properties
标记: class
线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。
Collections
标记: 均以synchronized实现, 性能没用提高
synchronizedCollection
synchronizedList
synchronizedSet
synchronizedMap
synchronizedSortedSet
synchronizedSortedSet
JUC
CopyOnWriteArrayList
写有锁,读无锁,读写之间不阻塞,优于读写锁
写入时先copy一个容器副本,再添加新元素,最后替换引用
copy的容器副本过大时,速度慢,不易使用
CopyOnWriteArraySet
底层使用CopyOnWriteArrayList实现
使用addIfAbsent()添加元素时,会遍历数组,如果存在元素,则抛弃副本
ConcurrentHashMap
初始容量默认为16段(segment),使用分段锁设计
ConcurrentLinkedQueue
高并发下性能最好的队列
无锁,采用CAS比较算法,核心参数(V,E,N)
V:要更新的变量
E:预期值
N:新值
只有当V==E时,V=N;否则表示已被更新过,则取消当前操作
阻塞队列
BlockingQueue接口
void put(E e)
将指定元素插入此队列,如果没有可用空间,则等待
E take()获取并移除此队列头部元素,如果没有可用元素,则等待
ArrayBlockingQueue 数组结构实现,有界队列,手工固定上限
LinkedBlockingQueue 链表结构实现,无界队列(默认上限Integer.MAX_VALUE)
2019-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人