java集合
2022-11-15 15:12:00 26 举报
AI智能生成
java集合分类
作者其他创作
大纲/内容
Collection
List
ArrayList
数组实现,随机查找更快
初始化容量是10
扩容原来1.5倍
线程不安全
LinkedList
双向链表实现,查找慢,增删快,占用空间更大
内存地址分布不均匀
线程不安全
Vector
数组实现,同ArrayList
2.线程安全
Set
HashSet
底层数据结构是HashMap
无序,只能有一个null
存储对象
LinkedHashSet
同HashSet但是能够保证顺序
TreeSet
底层采用TreeMap
存储对象
Queue
ArrayBlockQueue
底层采用数组
使用用RentranLock实现,会锁住整个数组对象
阻塞。当队列元素为空时再去拿阻塞;当队列满了时,再放入阻塞
先进先出,读写互斥
LinkedBlockQueue
底层采用链表实现
读写两把不同的锁
删除元素同时加锁
子主题
SynchronousQueue
需要指定公平和非公平
公平。采用链表先进先出
非公平。采用栈的数据结构先进后出
加锁采用自旋+cas操作方式
LinkedBlockingDequeue
一把锁
只能队首或者队尾操作
Map
HashMap
数据结构数组+链表(红黑树)
没指定容量初始化容量为16
每次扩容为原来的2倍
链表长度大于8并且数组长度大于64链表转红黑树
线程不安全
只能有一个key是null,可以有多个的value是null
HashTable
特性同HashMap
线程安全
键和值都不允许为null
每次扩容时2n+1
TreeMap
底层采用红黑树
利于查找
0 条评论
下一页